javascript - Jquery validation remove rules not working - Stack Overflow

admin2025-04-19  0

I am setting validation dynamically based on input. Before adding validation I am removing rule and adding it element is required. Message is not going away after I set rules remove.

     for (var i = 0; i < data.length; i++) {
        switch (data[i]["FieldName"]) {
            case "ADDRESS_1":             
                $('[name="HomeAddress1Text"]').rules("remove");               
                if (data[i]["Required"] == true) {
                    $('[name="HomeAddress1Label"]').addClass("required");
                    $('[name="HomeAddress1Text"]').rules("add", {
                        required: true,
                        messages: {
                            required: "Required"
                        }
                    });
                } else {
                    $('[name="HomeAddress1Label"]').removeClass("required");
                }
                break;
 case "ADDRESS_2":
                 $('[name="HomeAddress2Text"]').rules("remove");              
                if (data[i]["Required"] == true) {
                    $('[name="HomeAddress2Label"]').addClass("required");
                    $('[name="HomeAddress2Text"]').rules("add", {
                        required: true,
                        messages: {
                            required: "Required"
                        }
                    });
                } else {
                    $('[name="HomeAddress2Label"]').removeClass("required"); 
                }
                break;
           }
      }

Above image 1st I have selected Gayana country for this country Address line2 is required and got error message. that correct then I have change to USA and I have removed rule for Address Line2 but still message shows. How to removed all message after change my dropdown and see when submit again?

I am setting validation dynamically based on input. Before adding validation I am removing rule and adding it element is required. Message is not going away after I set rules remove.

     for (var i = 0; i < data.length; i++) {
        switch (data[i]["FieldName"]) {
            case "ADDRESS_1":             
                $('[name="HomeAddress1Text"]').rules("remove");               
                if (data[i]["Required"] == true) {
                    $('[name="HomeAddress1Label"]').addClass("required");
                    $('[name="HomeAddress1Text"]').rules("add", {
                        required: true,
                        messages: {
                            required: "Required"
                        }
                    });
                } else {
                    $('[name="HomeAddress1Label"]').removeClass("required");
                }
                break;
 case "ADDRESS_2":
                 $('[name="HomeAddress2Text"]').rules("remove");              
                if (data[i]["Required"] == true) {
                    $('[name="HomeAddress2Label"]').addClass("required");
                    $('[name="HomeAddress2Text"]').rules("add", {
                        required: true,
                        messages: {
                            required: "Required"
                        }
                    });
                } else {
                    $('[name="HomeAddress2Label"]').removeClass("required"); 
                }
                break;
           }
      }

Above image 1st I have selected Gayana country for this country Address line2 is required and got error message. that correct then I have change to USA and I have removed rule for Address Line2 but still message shows. How to removed all message after change my dropdown and see when submit again?

Share Improve this question edited Aug 2, 2021 at 16:22 Sparky 98.8k26 gold badges202 silver badges290 bronze badges asked May 20, 2015 at 21:49 James123James123 11.7k70 gold badges198 silver badges355 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 3

Instead of removing the required class, use the $.rules('remove',...) function:

$('[name="HomeAddress1Label"]').rules('remove',{
    required:true
});

You may need to re-validate after this change as well -

$('form').valid();

Looks dirty but below solution worked for me.

$("#Name").rules("remove", "required"); //Only this line did not worked in my case
$("#Name").removeClass("input-validation-error");
$("#Name").next().removeClass("field-validation-error");
$("#Name").next().addClass("field-validation-valid");
$("#Name").next().children().text("");
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1745062506a282785.html

最新回复(0)