我正在使用jQuery Validation Plugin来处理表单验证,它也使用像
这样的数据属性$('#validate-me-plz').validate();
$("#country").change(function(){
if($(this).val() === "country1") {
if($('.firstName').attr('data-rule-required') !== 'true') {
$('.firstName').attr('data-rule-required','true');
}
} else if($(this).val() === "country2") {
if($('.firstName').attr('data-rule-required') !== 'false') {
$('.firstName').attr('data-rule-required','false');
}
}
});
JSFiddle - http://jsfiddle.net/ylokesh/SLXhR/135/
正常情景: 如果我没有点击提交按钮并更改下拉值并点击提交按钮,那么效果很好。
有问题的情景: 只要我点击提交按钮,然后尝试更改下拉值。它不会禁用/启用所需的验证。
重现实际问题的步骤
的JavaScript
{{1}}
请指导我获取此问题的解决方案。提前谢谢。
答案 0 :(得分:2)
使用data
代替attr
而不是设置字符串true
或false
设置bool
值
<强> DEMO 强>
$("#country").on('change',function(){
if($(this).val() === "country1") {
if(!$('.firstName').data('rule-required')) { //check bool value
$('.firstName').data('rule-required',true); //set bool value
}
} else if($(this).val() === "country2") {
if($('.firstName').data('rule-required')) {
$('.firstName').data('rule-required',false);
}
}
});