关于jquery:动态验证规则所需字段的函数

function for required field of dynamic validation rule

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

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

1
2
3
4
5
6
7
8
9
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


您需要使用立即执行的函数来关闭nr

1
2
3
4
5
6
7
8
9
10
11
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中立即执行函数的说明。