Mam formularza wewnątrz okna, które ja zamknąć, klikając na CommandButton z AJAX,Jak znaleźć wskazanie błędu walidacji (wymagane = „true”) robiąc ajax polecenie
tak
<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>
i oto kod js do zamykania okna dialogowego
function closeAddNewSomethingDialogIfSucceeded(data) {
if(data.status === 'success') {
$("#dialog_id").dialog("close");
}
}
żadnych problemów till tutaj ...
Teraz zmieniłem niektóre dialogowych pól formularza do required="true"
i teraz chcę, aby zapobiec zamknięciu okna z Dostałem błędy sprawdzania poprawności ...
Ale ajax data.status
nadal osiąga stan success
, a ja nie mogę dowiedzieć się, co wskazanie niepowodzenia sprawdzania poprawności mogę podłączyć ...
jakieś pomysły?
Dzięki BalusC odpowiedź Zrobiłem następujące:
w JSF, dodał:
<h:panelGroup id="global_flag_validation_failed_render">
<h:outputText id="global_flag_validation_failed" value="true"
rendered="#{facesContext.validationFailed}"/>
</h:panelGroup>
f: ajax zamieniono
<f:ajax render="@form someTable global_flag_validation_failed_render"
aw js dodał po sprawdzeniu
if(data.status === 'success') {
if($("#global_flag_validation_failed").length === 0){
$("#dialog_id").dialog("close");
}
}
podziękowaniem! ostatecznie użyłem powoływać się na # {facesContext.validationFailed} (nie wiedziałem o tym) Użyłem go w stanie renderowania prostego outputext ... i później W kodzie js sprawdziłem dla tego wyjścia outputtext używając jquery .length ... – Daniel
Nie ma za co. Aby uzyskać przegląd niejawnych obiektów EL w JSF, zobacz także [this] (http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html#ImplicitELObjects). – BalusC
@ BalusC Czy faceContext.validationFailed dotyczy również błędów konwersji? Czy to prawda, jeśli konwersja się nie udała? – Bren