Ho una forma all'interno di una finestra di dialogo che Chiudo facendo clic sul CommandButton con ajax,Come trovare l'indicazione di un errore di convalida (required = "true"), mentre facendo comando ajax
come questo
<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>
e qui è il codice js per chiudere la finestra di
function closeAddNewSomethingDialogIfSucceeded(data) {
if(data.status === 'success') {
$("#dialog_id").dialog("close");
}
}
Nessun problema fino a qui ...
Ora ho cambiato alcuni dei campi del modulo di dialogo in required="true"
e ora voglio impedire la chiusura della finestra di dialogo di ho ottenuto errori di convalida ...
Ma l'ajax data.status
raggiunge ancora il suo stato success
, e non posso capire quale indicazione di fallimento della convalida riesco ad agganciare ...
qualche idea?
Grazie a BalusC risposta che ho fatto la seguente:
in JSF, ha aggiunto:
<h:panelGroup id="global_flag_validation_failed_render">
<h:outputText id="global_flag_validation_failed" value="true"
rendered="#{facesContext.validationFailed}"/>
</h:panelGroup>
la F: Ajax è stato modificato in
<f:ajax render="@form someTable global_flag_validation_failed_render"
e js aggiunto il seguente controllo
if(data.status === 'success') {
if($("#global_flag_validation_failed").length === 0){
$("#dialog_id").dialog("close");
}
}
grazie! alla fine ho usato invocato il # {facesContext.validationFailed} (non ne ero a conoscenza) l'ho usato in una condizione di rendering di semplice outputext ... e più tardi nel codice js ho verificato la presenza di output output usando jquery .length ... – Daniel
Prego. Per una panoramica degli oggetti EL impliciti in JSF, vedere anche [this] (http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html#ImplicitELObjects). – BalusC
@BalusC Does facesContext.validationFailed si applica anche agli errori di conversione? È vero se la conversione è fallita? – Bren