我对输入元素使用了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的情况下实现同样的效果,因为我知道应该非常谨慎地使用它。
发布于 2009-12-16 19:14:51
好吧,看起来我可以用这个:
$("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' });
});我以为那不会起作用,但它确实起作用了。
https://stackoverflow.com/questions/1913949
复制相似问题