Ich versuche, das HTML-Auswahlelement mit dem jQuery Validate-Plugin zu validieren. Ich habe die "erforderliche" Regel auf "wahr" gesetzt, aber sie besteht immer die Validierung, da standardmäßig der Nullindex gewählt wird. Gibt es eine Möglichkeit, einen leeren Wert zu definieren, der von der erforderlichen Regel verwendet wird?
UPD. Beispiel. Stellen Sie sich vor, wir haben das folgende HTML-Steuerelement:
<select>
<option value="default">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
Ich möchte, dass das Validierungs-Plugin den "Standard" -Wert als leer verwendet.
jquery
jquery-validate
SiberianGuy
quelle
quelle
Antworten:
Sie können Ihre eigene Regel schreiben!
quelle
$.validator.addMethod("valueNotEquals", function(value, element, arg){ return return arg != jQuery(element).find('option:selected').text(); }, "Value must not equal arg.");
Eine einfachere Lösung wurde hier beschrieben: Auswahlfeld validieren
Machen Sie den Wert leer und fügen Sie das erforderliche Attribut hinzu
quelle
Setzen Sie einfach den Wert der ersten Option auf leere Zeichenfolge
value=""
und jquery
required
Validierungsregelwill work
quelle
Verwenden Sie die Min-Regel
Setzen Sie den ersten Optionswert auf 0
quelle
Sie müssen nur eine
validate[required]
Klasse dieser Auswahl eingeben und dann eine Option mit dem Wert = "" einfügen.beispielsweise:
quelle
Ich weiß nicht, wie das Plugin war, als die Frage gestellt wurde (2010), aber ich hatte heute das gleiche Problem und löste es folgendermaßen:
Geben Sie Ihrem Select-Tag ein Namensattribut. Zum Beispiel in diesem Fall
<select name="myselect">
Deaktivieren Sie die Standardoption oder setzen Sie den Wert = "", wie von Andrew Coats vorgeschlagen, anstatt mit dem Attribut value = "default" in der Tag-Option zu arbeiten
<option disabled="disabled">Choose...</option>
oder
<option value="">Choose...</option>
Legen Sie die Plugin-Validierungsregel fest
$( "#YOUR_FORM_ID" ).validate({ rules: { myselect: { required: true } } });
oder
<select name="myselect" class="required">
Obs: Die Lösung von Andrew Coats funktioniert nur, wenn Sie nur eine Auswahl in Ihrem Formular haben. Wenn Sie möchten, dass seine Lösung mit mehr als einer Auswahl funktioniert, fügen Sie Ihrer Auswahl ein Namensattribut hinzu.
Ich hoffe es hilft! :) :)
quelle
required
dem<select>
Tag eindisabled
Attribut hinzu und fügen Sie dem ersten<option>
Tag einselected
Attribut hinzu (oder das mit dem Attribut, falls es eines gibt)Hier ist das einfache und verständliche Beispiel:
JQuery:
quelle
Der ausgewählte Wert ist leer
quelle
Es ist einfach, Sie müssen den Feldwert "Auswählen" abrufen und er kann nicht "Standard" sein.
quelle
Die von @JMP erwähnte Lösung funktionierte in meinem Fall mit einer kleinen Modifikation: Ich verwende
element.value
stattvalue
in deraddmethod
.Es könnte möglich sein, dass ich hier einen Sonderfall habe, aber die Ursache nicht aufgespürt habe. Die Lösung von @ JMP sollte jedoch in regelmäßigen Fällen funktionieren.
quelle
Wie validiere ich die Auswahl "Qualifica"? Es gibt 3 Auswahlmöglichkeiten
quelle