Приветствую Вас, профессионалы JavaScript!
Я мало программировал на JS(Ну точнее начинаю)...
Ммм, чему такое долгое вступление? О чем нужно спросите) Итак, к сути:]
На странице есть два блока с id="well_[номер]".
Каждое из них состоит из трех input полей (cost, name, description).
Схематично это выглядит так:
[well_1]
(cost_1)
(name_1)
(description_1)
[/well_1]
[well_2]
(cost_2)
(name_2)
(description_2)
[/well_2]
Эти блоки (их может быть более 2-х) загружаются из базы. Генерируется HTML и JS код интерпретатором PHP.
HTML - сами блоки
JS - код валидации для сгенерированных блоков(Ниже пример кода)
$("#bonuses").validate({
rules: {
cost_1: {
required: true,
digits: true,
minlength: 1,
maxlength: 10
},
name_1: {
required: true,
only_allowed_characters: true,
minlength: 3,
maxlength: 20
},
description_1: {
required: true,
only_allowed_characters: true,
minlength: 20,
maxlength: 200
},
cost_2: {
required: true,
digits: true,
minlength: 1,
maxlength: 10
},
name_2: {
required: true,
only_allowed_characters: true,
minlength: 3,
maxlength: 20
},
description_2: {
required: true,
only_allowed_characters: true,
minlength: 20,
maxlength: 200
},
},
})
});
Все замечательно работает, формы проверяются. В плагин jQuery Validation
путем проб и ошибок добавлен код, который активирует всплывающие сообщения плагина tipsy.
Проблема в том, что новые блоки well_№, которые добавляются в страницу на лету, не представляется возможности проверять так же, как и добавленные не на лету=[ Ибо (видимо) нельзя повторно добавить правила для той же таблицы и новых полей...
Пробовал добавлять следующим кодом:
eval'
$().ready(function() {
$("#bonuses").validate({
rules: {
cost_'+count+': {
required: true,
digits: true,
minlength: 1,
maxlength: 10
},
name_'+count+': {
required: true,
only_allowed_characters:
true, minlength: 3,
maxlength: 20
},
description_'+count+': {
required: true,
only_allowed_characters: true,
minlength: 20,
maxlength: 200
},
},
})
});
';
Через eval(); Возможно криво и говнокодно, но с моими PHP'шными мозгами это был единственный выход... Код не давал ни ошибок ни результата...
Прошу помощи у гуру JavaScript и jQuery.
Используется плагин
jQuery Validation
Код прилагаю в архиве. Очень надеюсь на вашу помощь.
Спасибо!