2009-12-16 4 views
2

Я использую LiveValidation для элементов ввода. Они входят в таблицу, полученную с помощью вызова AJAX, и могут быть кратными 4, где-то между 4 и 36.Заменить для eval() для использования конструктора LiveValidation

Я использую 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, как я знаю, что следует использовать очень экономно.

ответ

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

Я думал, что это не будет работать, но это делает.

Смежные вопросы