有没有办法使用循环创建其中的10个,增加到处有“1”
的地方//1
$('#catbudgetform1').validate({
errorPlacement: function(error, element) {},
rules: {budgTotal1: { required: true, money:true }},
submitHandler:function() {
var theForm = $('#catbudgetform1');
updateSuccess(theForm,1);
},
invalidHandler: function(){
alert('Valid Number (ex. 1234 or 1234.00) is Required');
}
});
**注意#catbudgetform1和budgTotal1需要是#catbudgetform2和budgTotal2,依此类推等等
或者有没有办法写这个,它会独立地对十个表格中的每一个进行验证,但是没有写十次?
答案 0 :(得分:1)
我会尝试只使用类,没有ID,并使用submitHandler
使用$(this).closest("form")
代替$("#catbudgetform1")
$('.catbudgetform').each(function(i){
$(this).validate({
errorPlacement: function(error, element) {},
rules: {"budgTotal" + i: { required: true, money:true }},
submitHandler:function() {
var theForm = $(this).parents("form");
updateSuccess(theForm,i);
},
invalidHandler: function(){
alert('Valid Number (ex. 1234 or 1234.00) is Required');
}
});
});
答案 1 :(得分:1)
解决此问题的一种更简单的方法是将元素从具有唯一ID更改为具有特定类。这极大地简化了您的逻辑,因为类允许在此处进行分组。
$('.catbudgetform').each(function (index) {
var theRules = {};
theRules['budgTotal' + index] = { required: true, money:true };
$(this).validate({
errorPlacement: function(error, element) {},
rules: theRules,
submitHandler:function() {
var theForm = $(this);
updateSuccess(theForm, index);
},
invalidHandler: function(){
alert('Valid Number (ex. 1234 or 1234.00) is Required');
}
});
});
答案 2 :(得分:0)
我会尝试做一些像Flöcsy建议的那样的事情,但是因为听起来你已经有一些代码在其中编码了这个索引,所以下面会这样做。
for (var i=1; i <= 10; i++) {
// Freeze the loop variable with a self calling function
(function(index){
// Can't do a literal object if the property is dynamic
var rules = {};
rules['budgTotal'+index] = { required: true, money:true };
$('#catbudgetform' + index).validate({
errorPlacement: function(error, element) {},
rules: rules,
submitHandler:function() {
var theForm = $('#catbudgetform' + index);
updateSuccess(theForm,index);
},
invalidHandler: function(){
alert('Valid Number (ex. 1234 or 1234.00) is Required');
}
});
})(i); // Passing the loop variable into the anonymous self calling function
}