我正在为输入元素使用 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 的情况下实现相同目标的更好方法是什么,因为我知道应该非常谨慎地使用它。
最佳答案
好吧,看来我只能用这个了:
$("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' });
});
我认为那行不通,但它确实行得通。
关于javascript - 替代 eval() 以使用 LiveValidation 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913949/