Here's an example from a site I worked on.

I'll explain the code first. This site has a form with required fields
for First Name, Last Name and Email by default. If one clicks on the
Send a hard copy check box, the form expands, revealing the address
fields. These are now required. The rules for each of these fields is
added with $("#the_field_id_name").rules("add", "required");

When the checkbox is clicked, the address fields are hidden and the
address rules are removed from validation with $
("#the_field_id_name").rules("remove");
Notice that the rules for all address fields are set to required:
false. The rules are added and removed dynamically by clicking the
checkbox.

$(document).ready(function() {

        // hide ebook form
        $("#ebook_form").hide();

        $("#send_hard_copy").click(function () {
                if ($(this).is(":checked")) {
                        $("#address_info").slideDown("slow");
                        if ($("#submitButton_ebook").val() == 'Read Now') {
                                $("#submitButton_ebook").val("Submit");
                        } else {
                                $("#submitButton_ebook").val("提交");
                        }
                        $("#AddressLine1").rules("add", "required");
                        $("#City").rules("add", "required");
                        $("#State").rules("add", "required");
                        $("#PostalCode").rules("add", "required");
                        $("#Phone").rules("add", "required");
                } else {
                        $("#address_info").slideUp("slow");


                        if ($("#submitButton_ebook").val() == 'Submit') {
                                $("#submitButton_ebook").val("Read now");
                        } else {
                                $("#submitButton_ebook").val("现在读");
                        }
                        $("#AddressLine1").rules("remove");
                        $("#City").rules("remove");
                        $("#State").rules("remove");
                        $("#PostalCode").rules("remove");
                        $("#Phone").rules("remove");
                }
        });


        // validate signup form on keyup and submit
        var v1 = $("#theForm").validate({

                rules: {
                        "FirstName": {
                                required: true
                        },
                        "Email": {
                                required: true,
                                email: true
                        },
                        "LastName": {
                                required: true
                        },
                        "AddressLine1": {
                                required: false
                        },
                        "City":{
                                required: false
                        },
                        "State":{
                                required: false
                        },
                        "PostalCode": {
                                required: false
                        },
                        "Phone": {
                                required: false
                        }
                },
                messages: {
                "FirstName": {
                                required: "Please enter your first name"
                        },
                        "Email": {
                                required: "Please enter your email",
                                email: "Please enter a valid email"
                        },
                        "LastName": {
                                required: "Please enter your last name"
                        },
                        "AddressLine1": {
                                required: "Please enter your address"
                        },
                        "City":{
                                required: "Please enter your city"
                        },
                        "State":{
                                required: "Please enter your state"
                        },
                        "PostalCode": {
                                required: "Please enter your postal code"
                        },
                        "Phone": {
                                required: "Please enter your phone number"
                        }
                }

             // additional code omitted...
});

Reply via email to