jQuery.Valider Conditionnelle de Validation RadioButton et DropDownList
Je suis en train de mettre en place la validation de certains, de sorte que si le " Oui " bouton radio est coché un autre contrôle, qui est une liste déroulante doit être validé afin de s'assurer qu'elle n'est pas définie par défaut à la première entrée de la liste "s'il vous Plaît Sélectionner...".
J'ai essayé plusieurs combinaisons mais n'ont pas été en mesure d'obtenir que cela fonctionne. Le message de validation indique si la case est cochée ou non.
Heres un peu de code!
C'est une coutume méthode que j'ai que j'utilise pour valider mes listes déroulantes. (Cela fonctionne très bien pour de simples DDL de validation)
$.validator.addMethod(
"selectNone",
function(value, element) {
return this.optional(element) || element.value != "Please Select...";
},
"Please select an option."
);
Pour procéder à la validation basée sur la case à cocher j'ai ajouté une règle de la forme
$(document).ready(function() {
var validator = $("#BuildingsCoverForm").validate({
rules: {
NCBYears: {
selectNone: function(element) {
return $("*[name='PreviousInsurance']")[0].checked;
}
}
},
messages: {
NCBYears: {
selectNone: "This field is required"
}
}
});
});
Et voici les contrôles.
<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>
Des idées serait très apprécié.
Merci Beaucoup
OriginalL'auteur andyJ | 2009-07-05
Vous devez vous connecter pour publier un commentaire.
Plus longue que la première liste déroulante de l'option a une valeur vide (
<option value="">some text</option>),
la règle suivante:à partir de: http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression
Seule la valeur de l'option doit être vide, pas le texte. Si le contrôle ne peut pas le faire, utiliser jquery pour modifier la valeur à vide sur le prêt.
OriginalL'auteur ScottE
ScottE est correct. J'ai un dropdownlist rempli à partir d'une base de données et j'ai juste ajouté un élément au sommet de la liste et lui a donné une valeur de "". Lorsque vous validez la saisie suffit de les valider à l'encontre de la dropdownlist d'être vide. Vous pouvez également coder en dur la liste si elle ne change jamais et ajouter un élément vers le haut avec une valeur vide, exemple ci-dessous.
OriginalL'auteur chad
Cela ne fonctionne pas avec la version actuelle de Validate.js (v 1.7)
J'ai aussi été en mesure de prouver le concept ne fonctionne pas:
Échec également.
OriginalL'auteur Nigel