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?
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("");