jquery验证数组输入的添加规则[重复]

ht4b089n  于 2023-01-30  发布在  jQuery
关注(0)|答案(2)|浏览(174)
    • 此问题在此处已有答案**:

jQuery validate dynamic input array(2个答案)
jQuery Validate array input element which is created dynamically(2个答案)
2天前关闭。
我想将复选框值存储在数组中,但是,我无法使用验证规则,因为名称是selectList[]而不是selectList。我尝试了ID,但似乎规则只绑定到名称。
网页:

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

JS规则:

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

});

谢谢

olhwl3o2

olhwl3o21#

问题是现成的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();
},
ndasle7k

ndasle7k2#

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

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

在初始化Javascript对象属性名时,它们可以是标识符(您尝试过的方法)、数字或字符串。
工作代码:http://jsfiddle.net/rMgLG/

相关问题