Ich habe diesen Eingabecode in meiner Form:
%Vor%Ich ändere die oninvalid Nachricht mit diesem Javascritp Code:
%Vor%Hier ist das Problem, wenn ich auf submit und das Feld ist leer, das Feld shome den Fehler, so dass ich das Feld ausfüllen muss, aber nach dem Füllen des Feldes, bekomme ich immer noch die Warnung, auch die Füllung ist nicht leer.
Was ich falsch mache ???
Sie können eine benutzerdefinierte Gültigkeitsnachricht mit setCustomValidity
festlegen. Jede nicht leere Zeichenfolge bewirkt jedoch, dass das Feld so wirkt, als hätte es einen ungültigen Wert. Sie müssen setCustomValidity('')
eingeben, um den ungültigen Status des Feldes zu löschen.
Wenn Ihre Gültigkeit einfach ist und über Feldattribute gesteuert wird, können Sie object.willValidate
verwenden, um den Test durchzuführen und die benutzerdefinierte Gültigkeitsnachricht zu setzen:
oninvalid="this.setCustomValidity(this.willValidate?'':'your custom message')"
Wenn Sie einen Wert mit setCustomValidity()
festlegen, ist das Feld ungültig. Wenn Sie eine Zeichenfolge ungleich Null festlegen, wird das Feld vom Browser als ungültig betrachtet. Um die Auswirkungen Ihrer neuen Eingabe zu nutzen, müssen Sie die benutzerdefinierte Gültigkeit löschen.
Sie können einfach Folgendes verwenden:
Hierfür ist kein Javascript erforderlich.
Wenn Sie setCustomValidity
auf einen Wert setzen, der nicht der leere String ist, wird% input
im Status invalid
sein. Ihre Bedingung ist also, nach einem Wert zu suchen und dann das Feld auf invalid
zu setzen. Nur setCustomValidity
, wenn der Wert im Feld tatsächlich ungültig ist, andernfalls auf eine leere Zeichenfolge:
Bei mir funktioniert nur oninvalid="this.setCustomValidity(this.willValidate ? '' :'You must choose the account type from the list')"
. Es gibt viele Probleme bei der Verwendung mit IE.
Tags und Links javascript html html5