J'essaie de configurer une certaine validation, de sorte que si le bouton radio 'Oui' est coché un autre contrôle, une liste déroulante doit être validée pour s'assurer qu'il n'est pas défini sur la première entrée par défaut de la liste. "S'il vous plaît sélectionnez ...".
J'ai essayé de nombreuses combinaisons mais je n'ai pas pu obtenir cela pour travailler. Le message de validation indique si la case à cocher est cochée ou non. P>
Heres Quelque code! P>
Il s'agit d'une méthode personnalisée que j'ai utilisée pour valider mes listes déroulantes. (Cela fonctionne bien pour une simple validation DDL) p> Pour effectuer la validation basée sur la case à cocher J'ai ajouté une règle sur le formulaire P> <p>
<label for="PreviousInsurance" class="halfstretch">Do you have any previous insurance?</label>
<%= Html.YesNoControl("PreviousInsurance", Model.PreviousInsurance)%>
</p>
<p>
<label for="NCBYears" class="halfstretch">Building No Claim Bonus</label>
<%= Html.DropDownList("NCBYears", ViewData["NCBYears"] as SelectList)%>
</p>
3 Réponses :
Tant que la première option de liste déroulante a une valeur vide (
rules: {
NCBYears: {
required: function(element) {
return $("input:radio[name='PreviousInsurance']:checked").val() == 'yes';
}
}
}
Mais il n'a pas de "veuillez choisir ..." et cela doit rester
Seule la valeur d'option doit être vide, pas le texte. Si le contrôle ne peut pas faire cela, utilisez JQuery pour modifier la valeur en blanc sur prête.
Cela ne fonctionne pas avec la version actuelle de validate.js (V 1.7)
J'ai également pu prouver que le concept même ne fonctionne pas: p> Cela échoue également. P> p>
Non - Ne tenez pas compte de cela. Il s'est avéré que je vérifiais un dérivé de xyz (préréglage avec du texte comme - "Veuillez sélectionner une date") plutôt que XYZ pur.
Scotte est correct. J'ai une liste déroulante renseignée à partir d'une base de données et je viens d'ajouter un élément en haut de la liste et je lui ai donné une valeur de "". Lorsque vous validez l'entrée, la validation de la liste déroulante est vide. Vous pouvez également avoir du mal à papier la liste s'il ne change jamais et ajoutez un élément au sommet avec une valeur vide, exemple ci-dessous.