我想将复选框值存储在数组中,但是,我不能使用验证规则,因为名称是selectList[]
而不是selectList
。我尝试了id,但似乎规则只绑定了名称。
HTML:
<input id='sendList' type='checkbox' name='selectList[]' value='$set[ListID]'>
js rule:
$("#selectList").validate( {
rules: {
selectList[]: {
required: true,
minlength: 1
}
}
})
});
谢谢
答案 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中,它们可以是标识符(您尝试的方式),数字或字符串。