我有一個對話框內一種形式,我關閉通過點擊與阿賈克斯命令按鈕,如何找到一個驗證錯誤的指示(所需=「真」),而這樣做的AJAX命令
這樣
<h:commandButton value="Add" action="#{myBean.addSomething(false)}"
id="add_something_id" >
<f:ajax render="@form someTable" execute="@form"
onevent="closeAddNewSomethingDialogIfSucceeded"></f:ajax>
</h:commandButton>
這裏是關閉該對話框
function closeAddNewSomethingDialogIfSucceeded(data) {
if(data.status === 'success') {
$("#dialog_id").dialog("close");
}
}
沒有問題,到這裏的js代碼...
現在我改變了一些對話形式的場爲required="true"
,現在我想阻止我得到驗證錯誤對話框關閉...
但AJAX data.status
仍然達到success
狀態,我不能弄清楚什麼跡象表明驗證失敗,我可以掛鉤...
任何想法?
感謝BalusC答案,我做了以下內容:
在JSF,補充說:
<h:panelGroup id="global_flag_validation_failed_render">
<h:outputText id="global_flag_validation_failed" value="true"
rendered="#{facesContext.validationFailed}"/>
</h:panelGroup>
的F:AJAX改爲
<f:ajax render="@form someTable global_flag_validation_failed_render"
和JS加以下檢查
if(data.status === 'success') {
if($("#global_flag_validation_failed").length === 0){
$("#dialog_id").dialog("close");
}
}
謝謝!最終我使用#{facesContext.validationFailed}(我沒有意識到)我使用它在一個簡單的outputext渲染條件...後來在js代碼我檢查使用jQuery的outputtext存在.length ... – Daniel 2012-03-11 08:18:37
不客氣。有關JSF中隱式EL對象的概述,另請參閱[this](http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html#ImplicitELObjects)。 – BalusC 2012-03-11 12:33:33
@BalusC Does facesContext.validationFailed是否也適用於轉換失敗?如果轉換失敗,這是真的嗎? – Bren 2013-10-30 22:32:45