У меня есть форма, на которой я использую jquery.validate. Сначала я вызываю проверку с помощью набора правил и пользовательских сообщений...
$("#formName").validate( {
rules: {
myExistingInput: {
required: true
}
},
messages: {
myExistingInput: {
required: "Enter something"
}
},
ignore: null, // include hidden fields (see below)
submitHandler: function(form) {
// do stuff
},
invalidHandler: function(event, validator) {
// do stuff (some of the fields may have been hidden by a collapsible panel
// if there is an error on one of those fields, expand the panel so the error
// becomes visible)
}
});
Позже я динамически добавляю поля в форму и добавляю правила для этих полей тоже...
$("#formName").append(...);
$("#newInputName").rules("add", {
required: true,
messages: {
required: "Enter something else"
}
});
Если я затем отправлю форму, я получаю сообщение об ошибке из jquery.validate...
Исключение произошло при проверке элемента newInputName, проверьте Метод 'messages'.TypeError: Невозможно получить свойство 'call' of undefined или нулевая ссылка
Отладка в браузере, я вижу, что ошибка вызывается из функции "проверка" и что для переменной "метод" задано "сообщения".
Если я удалю сообщения от вызова к правилам ( "добавить",...
$("#newInputName").rules("add", {
required: true
});
он работает так, как ожидалось, но, очевидно, теперь у меня нет пользовательских сообщений об ошибках.
Я видел много примеров здесь, на SO, что указывает на то, что мой синтаксис верен. Любые предложения?
BTW: плагин проверки jQuery - v1.11.0 - 2/4/2013