Add/Remove 使用 jQuery 验证插件 1.11.1 即时使用数据属性进行表单验证

Add/Remove form validations with data attributes on the fly using jQuery Validation Plugin 1.11.1

我正在使用 jQuery 验证插件来处理表单验证,它也使用像

这样的数据属性
<input type="text" class="firstName" name="firstName" data-rule-required="true" /> 

JSFiddle - http://jsfiddle.net/ylokesh/SLXhR/135/

正常情况: 如果我没有单击提交按钮并更改下拉值并单击提交按钮,它会很好地工作。

有问题的场景: 一旦我点击提交按钮,然后尝试更改下拉值。它不会 disable/enable 需要验证。

重现实际问题的步骤

JavaScript

$('#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');    
        }
    }
});

请指导我解决这个问题。提前致谢。

使用 data 而不是 attr,而不是设置字符串 truefalse 设置 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);    
        }
    }
});