1

在下面的代码中,必须确定字段是否为必填的函数不起作用。该代码与一个网站相关,其中一些文本字段('person_item')和复选框('chckbox')是动态创建的,然后添加验证规则。如果选中了一组复选框,则必须验证相关的“person_item”文本字段(否则不验证)。

我想我明白为什么'required'的功能不起作用(因为'nr',但我不知道如何编写正确的代码)。(PS:验证规则确实适用于'maxlength'和' float' 验证类型)

for(var nr=0;nr<maxitems;nr++){
    form = getSingleform(nr,type);
    $("#wrapper").append(form);
    $("#person_item"+nr).rules("add", { 
      required: function(element) {return ($('#chckbox'+nr).is(':checked') ); },
      maxlength: 3,
      float:true, 
}); //rules add
}//for
4

1 回答 1

1

您需要使用立即执行功能来关闭nr.

for(var nr=0;nr<maxitems;nr++){
    form = getSingleform(nr,type);
    $("#wrapper").append(form);
    $("#person_item"+nr).rules("add", { 
        required: (function(nr) {
            return function(element) {return ($('#chckbox'+nr).is(':checked') ); };
        })(nr),
        maxlength: 3,
        float:true, 
    }); //rules add
}//for

请参阅为什么这个函数用括号括起来,然后是括号?了解在 Javascript 中立即执行函数的说明。

于 2013-09-13T20:25:32.707 回答