У меня есть форма внутри диалогового окна, которое я закрываю, нажимая на commandbutton с помощью 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>
и вот код js для закрытия диалога
function closeAddNewSomethingDialogIfSucceeded(data) {
if(data.status === 'success') {
$("#dialog_id").dialog("close");
}
}
Никаких проблем до сих пор...
Теперь я изменил некоторые поля формы диалога на 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");
}
}