我正在使用LiveValidation作为输入元素。它们来自使用AJAX调用检索的表格,可以是4的倍数,在4到36之间。
我正在使用eval来调用LiveValidation的构造函数,因为在每次调用AJAX之后输入元素的数量会有所不同,我想不到另一种方式(我对JavaScript没有多少经验)。
我正在使用它:
$("input[type=text]", tableElement).each(function(index) {
eval("var temp_" + index + " = new LiveValidation(this, { wait: 0, validMessage: ' ' });");
eval("temp_" + index + ".add(Validate.Numericality, { onlyInteger: true });");
eval("temp_" + index + ".add(Validate.Presence, { failureMessage: 'Cannot be blank' });");
});
在不使用eval的情况下实现相同目标的更好方法是我应该非常谨慎地使用它。
答案 0 :(得分:2)
好吧,好像我可以用这个:
$("input[type=text]", tableElement).each(function(index) {
var temp = new LiveValidation(this, { wait: 0, validMessage: ' ' });
temp.add(Validate.Numericality, { onlyInteger: true });
temp.add(Validate.Presence, { failureMessage: 'Cannot be blank' });
});
我认为那不行,但确实如此。