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

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *