替换eval()以使用LiveValidation构造函数

时间:2009-12-16 11:07:04

标签: javascript jquery eval

我正在使用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的情况下实现相同目标的更好方法是我应该非常谨慎地使用它。

1 个答案:

答案 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' });
});

我认为那不行,但确实如此。