jQuery Valider la sélection requirejse

J’essaie de valider l’élément html select en utilisant le plugin jQuery Validate. Je mets la règle “required” à 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 requirejse?

UPD. Exemple. Imaginons que nous ayons le contrôle HTML suivant:

 Choose... 1 2  

Je veux que le plugin Validation utilise la valeur “default” comme vide.

Vous pouvez écrire votre propre règle!

  // add the rule here $.validator.addMethod("valueNotEquals", function(value, element, arg){ return arg !== value; }, "Value must not equal arg."); // configure your validation $("form").validate({ rules: { SelectName: { valueNotEquals: "default" } }, messages: { SelectName: { valueNotEquals: "Please select an item!" } } }); 

Une solution plus simple a été décrite ici: Valider la boîte de sélection

Rendre la valeur vide et append l’atsortingbut requirejs

  

la solution la plus simple

il suffit de définir la valeur de la première option pour vider la value="" chaîne value=""

  

et la règle required validation jquery will work

utiliser la règle min

définir la première valeur de l’option sur 0

 'selectName':{min:1} 

Il vous suffit de mettre validate[required] tant que classe de cette sélection et de mettre une option avec value = “”

par exemple:

  

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:

  1. Donnez à votre balise select un atsortingbut de nom. Par exemple dans ce cas

  2. Au lieu d’utiliser l’atsortingbut value = “default” dans l’option tag, désactivez l’option par défaut ou définissez la valeur = “” comme suggéré par Andrew Coats

    ou

  3. Définir la règle de validation du plugin

    $( "#YOUR_FORM_ID" ).validate({ rules: { myselect: { required: true } } });

    ou

Obs: La solution d’Andrew Coats ne fonctionne que si vous n’en avez qu’une seule dans votre formulaire. Si vous souhaitez que sa solution fonctionne avec plusieurs sélections, ajoutez un atsortingbut de nom à votre sélection.

J’espère que cela aide! 🙂

Voici l’exemple simple et compréhensible:

     

JQuery:

 jQuery(function() { jQuery('.error').hide(); // Hide Warning Label. jQuery("input[name=sub]").on("click", function() { var returnvalue; if(jQuery("select[name=subject]").val() == 0) { jQuery("label#select_error").show(); // show Warning jQuery("select#sel").focus(); // Focus the select box returnvalue=false; } return returnvalue; }); }); // you can change jQuery with $ 

La solution mentionnée par @JMP a fonctionné dans mon cas avec une petite modification: j’utilise element.value au lieu de la value dans la addmethod .

 $.validator.addMethod("valueNotEquals", function(value, element, arg){ // I use element.value instead value here, value parameter was always null return arg != element.value; }, "Value must not equal arg."); // configure your validation $("form").validate({ rules: { SelectName: { valueNotEquals: "0" } }, messages: { SelectName: { valueNotEquals: "Please select an item!" } } }); 

Il pourrait être possible que j’ai un cas particulier ici, mais que je n’ai pas trouvé la cause. Mais la solution de @ JMP devrait fonctionner dans des cas réguliers.

C’est simple, vous devez obtenir la valeur du champ Select et celle-ci ne peut pas être “par défaut”.

 if($('select').val()=='default'){ alert('Please, choose an option'); return false; } 

comment valider le select “qualifica” qu’il a 3 choisir

$ (document) .ready (function () {

 $('.validateForm').validate({ rules: { fullname: 'required', ragionesociale: 'required', partitaiva: 'required', recapitotelefonico: 'required', qualifica: 'required', email: { required: true, email: true }, }, submitHandler: function(form) { var fullname = $('#fullname').val(), ragionesociale = $('#ragionesociale').val(), partitaiva = $('#partitaiva').val(), email = $('#email').val(), recapitotelefonico = $('#recapitotelefonico').val(), qualifica = $('#qualifica').val(), dataSsortingng = 'fullname=' + fullname + '&ragionesociale=' + ragionesociale + '&partitaiva=' + partitaiva + '&email=' + email + '&recapitotelefonico=' + recapitotelefonico + '&qualifica=' + qualifica; $.ajax({ type: "POST", url: "util/sender.php", data: dataSsortingng, success: function() { window.location.replace("./thank-you-page.php"); } }); return false; } }); 

})

  html    **jQuery** $(document).ready(function() { if($("#sel").val() == null){ alert('select a value) } });