我需要验证一组输入文本元素(里程):例如:
<tbody>
<c:forEach items="${list}" var="item">
<tr>
<!--some other columns--->
<td align="left"><input type="text" name="mileage" value="" /></td>
</tr>
</c:forEach>
</tbody>
验证脚本如下:
$(document).ready(function(){
$("#form1").validate({
rules: {
mileage: {
required: true
}
},
submitHandler: function(form) {
form.submit();
}
});
});
现在的问题是,.validate.js只验证了里程的第一个元素。我能做什么?如何让插件验证所有的输入文本?
我希望你能帮助我。
发布于 2010-12-24 12:53:57
在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();
}
发布于 2012-10-15 09:33:45
根据eddy应答,此函数还会考虑ignore
设置。
checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
var checkingElements = this.findByName( elements[i].name ).not(this.settings.ignore);
if (checkingElements.length !== undefined && checkingElements.length > 1) {
for (var cnt = 0; cnt < checkingElements.length; cnt++) {
this.check( checkingElements[cnt] );
}
} else {
this.check( elements[i] );
}
}
return this.valid();
},
发布于 2010-12-24 12:11:01
https://stackoverflow.com/questions/4526229
复制