Ich habe einen spezifischen Anwendungsfall für die JSF-Validierung. Zum Beispiel habe ich ein inputText
-Feld:
Wert der Eingabe ist Zahl (in einigen Fällen kann es auch eine Zeichenkette sein, weil dies Teil der zusammengesetzten Komponente ist, aber das Problem ist besser beschrieben, wenn wir annehmen, dass dies eine Zahl ist). Diese Eingabe ist Teil des Formulars, am Ende des Formulars habe ich die Schaltfläche Senden:
%Vor%Was sind meine Anforderungen:
name
mit einem Wert. name
löschen werde. Dies ist auch der Fall, wenn ich Text lösche, der bereits in der Eingabe eingegeben wurde, den Fokus von der Komponente entferne (zum Beispiel TAB drücken) und in diesem Fall sollte auch eine AJAX-Anfrage verarbeitet werden und die Namenseingabe ebenfalls gelöscht werden. Wie kann ich die Validierung dieses Eingabefeldes deaktivieren, wenn es leer ist und nur für dieses Ajax-Ereignis?
Lassen Sie das required
-Attribut der Eingabe überprüfen, ob die Schaltfläche zum Speichern gedrückt ist oder nicht (was durch das Vorhandensein seiner Client-ID in der Anforderungsparameterzuordnung identifiziert werden kann).
(Beachte: nicht bind es an eine Bean-Eigenschaft! Der Code ist wie er ist)
Auf diese Weise würde% code% nur ausgewertet, wenn die Schaltfläche zum Speichern tatsächlich gedrückt wird.
Oder wenn Sie Probleme mit true
haben und / oder kein Problem bei der Codierung der Client-ID der Schaltfläche haben:
Entfernen Sie einfach das erforderliche Attribut, wenn Sie die Eingabe akzeptieren, wenn die Eingabe leer ist. Schreiben Sie dann einen benutzerdefinierten Validator, der nur leere Eingaben oder numerische Eingaben akzeptiert.
%Vor%Öffentliche Klasse customerNumericInputValidator implementiert Validator {
%Vor%}
Tags und Links validation jsf-2 primefaces required commandbutton