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