jquery验证为数组输入添加规则

时间:2012-04-03 15:32:55

标签: jquery jquery-validate

我想将复选框值存储在数组中,但是,我不能使用验证规则,因为名称是selectList[]而不是selectList。我尝试了id,但似乎规则只绑定了名称。

HTML:

<input id='sendList' type='checkbox' name='selectList[]' value='$set[ListID]'>

js rule:

  $("#selectList").validate( {
      rules: {
          selectList[]: {
              required: true,
              minlength: 1
          }
       }
   })

});

谢谢

2 个答案:

答案 0 :(得分:2)

问题是现成的jquery.validate.js只验证category []的第一个元素。所以,我们需要对它进行一些修改。

在jquery.validate.js中,找到一个名为checkForm的函数,我们必须按如下所示进行修改:

checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
if (this.findByName( elements[i].name ).length != undefined && this.findByName( elements[i].name ).length > 1) {
for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
this.check( this.findByName( elements[i].name )[cnt] );
}
} else {
this.check( elements[i] );
}
}
return this.valid();
},

答案 1 :(得分:0)

为什么不将selectList[]括在引号内:

$("#selectList").validate({
    rules: {
        'selectList[]': {
            required: true,
            minlength: 1
        }
    }
});

initializing Javascript object property names中,它们可以是标识符(您尝试的方式),数字或字符串。

工作代码:http://jsfiddle.net/rMgLG/