J'essaie de valider l'élément de sélection html à l'aide du plugin jQuery Validate. J'ai mis la règle «obligatoire» à true mais elle passe toujours la validation car l'index zéro est choisi par défaut. Existe-t-il un moyen de définir une valeur vide utilisée par la règle requise?
UPD. Exemple. Imaginez que nous ayons le contrôle html suivant:
<select>
<option value="default">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
Je veux que le plugin Validation utilise la valeur "par défaut" comme vide.
jquery
jquery-validate
SibérienGuy
la source
la source
Réponses:
Vous pouvez écrire votre propre règle!
la source
$.validator.addMethod("valueNotEquals", function(value, element, arg){ return return arg != jQuery(element).find('option:selected').text(); }, "Value must not equal arg.");
Une solution plus simple a été décrite ici: Valider la case de sélection
Rendre la valeur vide et ajouter l'attribut requis
la source
définissez simplement la valeur de la première option sur une chaîne vide
value=""
et règle de validation jquery
required
will work
la source
utiliser la règle min
définir la valeur de la première option sur 0
la source
Il vous suffit de mettre en
validate[required]
tant que classe de cette sélection, puis de mettre une option avec valeur = ""par exemple:
la source
Je ne sais pas comment était le plugin au moment où la question a été posée (2010), mais j'ai rencontré le même problème aujourd'hui et je l'ai résolu de cette façon:
Donnez à votre balise de sélection un attribut de nom. Par exemple dans ce cas
<select name="myselect">
Au lieu de travailler avec l'attribut value = "default" dans l'option de balise, désactivez l'option par défaut ou définissez value = "" comme suggéré par Andrew Coats
<option disabled="disabled">Choose...</option>
ou
<option value="">Choose...</option>
Définir la règle de validation du plugin
$( "#YOUR_FORM_ID" ).validate({ rules: { myselect: { required: true } } });
ou
<select name="myselect" class="required">
Obs: la solution d'Andrew Coats ne fonctionne que si vous n'avez qu'une seule sélection dans votre formulaire. Si vous souhaitez que sa solution fonctionne avec plusieurs sélections, ajoutez un attribut de nom à votre sélection.
J'espère que ça aide! :)
la source
required
attribut à la<select>
balise et ajoutez undisabled
attribut à la première<option>
balise (ou à celle avec l'selected
attribut s'il y en a un)Voici l'exemple simple et compréhensible:
JQuery:
la source
la valeur sélectionnée sera vide
la source
C'est simple, vous devez obtenir la valeur du champ Select et il ne peut pas être "par défaut".
la source
La solution mentionnée par @JMP a fonctionné dans mon cas avec une petite modification: j'utilise à la
element.value
place devalue
dans leaddmethod
.Il est possible que j'aie un cas particulier ici, mais je n'ai pas retracé la cause. Mais la solution de @ JMP devrait fonctionner dans des cas réguliers.
la source
comment valider la sélection "qualifica" il a 3 choisir
la source