Я в настоящее время настраиваю плагин проверки jQuery для использования в нашем проекте.
По умолчанию существуют некоторые события, автоматически настроенные для обработки. Т.е. фокус в/, настроите события на всей проверке огня исходных данных. Я хочу, чтобы это только стреляло, когда кнопка отправки нажата.
Эта функциональность, кажется, встроена в плагин, который мешает делать это (не изменяя сменный код, Не, Что я Хочу Сделать).
Я нашел eventDelegate вызовы функции в сменном опытном методе кода:
$(this.currentForm)
.validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate)
.validateDelegate(":radio, :checkbox, select, option", "click", delegate);
Когда я удаляю эти строки из плагина, я получаю свой результат, однако я очень сделал бы что-то Вне плагина для достижения этого.
Кто-либо может помочь мне? При необходимости еще в деталях сообщите мне. Я искал Google с небольшим успехом.
Спасибо
Править: Я в основном пытаюсь проверить форму Только, когда отправлять событие запущено. По умолчанию плагин проверяет каждый раз, когда фокус потерян в элементе управления вводом.
Нашел ответ. Он был (спрятан?) Как часть параметров метода проверки.
См. Параметры onfocusout и т. Д. На этой странице: http://docs.jquery.com/Plugins/Validation/validate#options
, для которых я могу установить значение false.
Вот мой код, который устанавливает мой валидатор (надеюсь, другие сочтут это полезным):
$(document).ready(function() {
$("form").each(function() {
$(this).validate({
validateDelegate: function() { },
onsubmit: true,
onkeydown: false,
onkeyup: false,
onfocusin: false,
onfocusout: false,
errorContainer: "#PanelError",
errorLabelContainer: "#PanelError ul",
wrapper: "li",
ignoreTitle: true,
errorClass: "Error",
highlight: function(element, errorClass, validClass) {
$(element).addClass(errorClass).removeClass(validClass);
$(element.form).find("#" + element.id)
.addClass(errorClass);
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass(errorClass).addClass(validClass);
$(element.form).find("#" + element.id)
.removeClass(errorClass);
}
});
});
});