Итак, вот три вопроса:
1.Что мне нужно сделать, чтобы удалить сообщения об ошибках из элементов управления внутри диалогового окна после закрытия диалогового окна без соблюдения правил проверки?
Плагин предоставляет метод resetForm () для валидатораобъект для сброса проверки ( см. документ ).
Когда вы вызываете validate()
, он фактически возвращает объект валидатора, который вы можете сохранить и использовать впоследствии:
var dialogFormValidator = $("#form2").validate({...});
В обработчике кнопки «Закрыть» вы можете:
close: function() {
$("#price").val("");
$("#description").val("");
dialogFormValidator.resetForm();
}
Редактировать
Привязка к событию beforeClose
правильно сбрасывает форму (классыне удаляются при привязке к событию close
:
beforeClose: function() {
$("#price").val("");
$("#description").val("");
dialogFormValidator.resetForm();
}
2. Как сделать так, чтобы сообщения об ошибках всегда отображались непосредственно под проверяемыми элементами управления?
Используйте обратный вызов errorPlacement()
в опциях validate()
, чтобы разместить метку ошибки в любом месте ( см. Документ ).
По умолчанию они добавляются рядом с полем ввода.С помощью некоторого CSS вы можете показать их «под» входным сигналом (с помощьючто-то вроде display:block;
для инст.)
3.диалоговые обработчики кнопок
Что касается сброса, вы можете использовать объект валидатора для проверки действительности:
var valid = dialogFormValidator.form();
if (valid) {
$("#save").button("enable");
addDetail();
// why don't you use $("#save").button("disable") ??
$("#save").attr('disabled',false); // better use prop() for 'disabled' properties and not attr()
$(this).dialog("close");
}
Не уверен насчет обработчика кнопки «Добавить детали».Почему вы включаете / отключаете элемент #Save (двумя различными способами)?