2010-12-06 18 views
20

J'utilise jQuery Validation Plugin pour la validation du formulaire et je ne suis pas en mesure de valider la liste/cochez la casejQuery valider la boîte de sélection

<select id="select"> 
<option value="-1">Choose an option</option> 
<option value="1">One</option> 
<option value="2">Two</option> 
<option value="3">Three</option> 
</select> 

Maintenant, je veux vous assurer que l'utilisateur sélectionne tout sauf « Choisissez une option "(qui est celle par défaut, et a la valeur -1). De sorte qu'il ne validera pas si vous choisissez la première option. Comment cela peut-il être fait?

+0

double possible de [jQuery Validation requise Select] (http://stackoverflow.com/questions/2901125/jquery-validate -requis-select) –

Répondre

11

Vous pouvez utiliser Jquery Validator custom rule. Un exemple similaire est discuté here. Le code ci-dessous est l'exemple:

// 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: "-1" } 
    }, 
    messages: { 
    SelectName: { valueNotEquals: "Please select an item!" } 
    } 
}); 
+0

@ down électeurs: pourquoi? Je suis conscient que "select: required" fonctionne, mais cette réponse est également valide. Cela vous permet également de personnaliser votre message d'erreur. –

19

Mettez <option value="">Choose an option</option> plutôt vide que -1

en utilisant la validation jquery

rules: {      
       select: "required" 
} 
+0

seule chose est, je ne peux pas effacé valeur à "" –

+1

Probablement c'est la manière la plus facile. – di3sel

4

Ajouter dans votre règle

select:{ 
    required: function(element) { 
    if($("#select").val() =='-1'){ 
     return false; 
    } else { 
     return true; 
    } 
    } 
} 
+0

merci pour l'aide, "dhanyawad" –

1

Ou utiliser la valeur de l'élément:

required: function(elm) { 
    if(elm.options[elm.options.selectedIndex].value != "-1") { 
     return true; 
    } else { 
     return false; 
    } 
} 
1

Pourquoi utilisez-vous pas la valeur de la condition? Ceci fait la même chose que la solution de Robin, mais est beaucoup plus courte.

0

Comment pouvons-nous valider pour jquery ui sélectionnez menu déroulant

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> 
 
<script> 
 
$(".intselect").selectmenu(); 
 
$().ready(function() { 
 

 

 
jQuery.validator.setDefaults({ 
 
    debug: true, 
 
    success: "valid" 
 
}); 
 
$("#validateregister").validate({ 
 
    rules: { 
 
\t firstname: { 
 
     required: true 
 
    }, 
 
\t email: { 
 
     required: true, 
 
\t email: true 
 
    }, 
 
    year: { 
 
     required: true 
 
    } 
 
    } 
 
    
 
}); 
 
$('#validateregister').change(function() { 
 
     if ($("#validateregister").valid()) { 
 
      $(".go").removeAttr("disabled"); 
 
     } 
 
\t \t else{ 
 
\t \t \t $(".go").attr("disabled","disabled"); 
 
\t \t } 
 
    }); 
 
}); 
 
</script>
"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<form id="validateregister" style="width: 300px;"> 
 
    <div> <br /> 
 
    <input type="text" name="firstname" class="form-control" id="firstname" /> 
 
    </div> 
 
    <div> <br /> 
 
    <input type="text" name="email" class="form-control" id="email" /> 
 
    </div> 
 
    <div> <br /> 
 
    <select class="form-control intselect" name="year" id="year"> 
 
     <option value="">Select year</option> 
 
     <option value="2014">2014</option> 
 
     <option value="2015">2015</option> 
 
     <option value="2016">2015</option> 
 
    </select> 
 
    </div> 
 
    <div> <br /> 
 
    <input type="submit" class="btn btn-default go" value="submit" disabled> 
 
    </div> 
 
</form>