Я использую плагин Проверки JQuery для клиентской проверки формы. В дополнение к красочному моделированию на недопустимых полях формы мой клиент требует, чтобы всплывающее сообщение показали. Я только хочу показать это сообщение, когда кнопка отправки является щелчком, потому что это свело бы пользователя с ума иначе. Я попробовал следующий код, но errorList всегда пуст. Любой знает корректный способ сделать что-то подобное.
function popupFormErrors(formId) {
var validator = $(formId).validate();
var message = '';
for (var i = 0; i < validator.errorList.length - 1; i++) {
message += validator.errorList[i].message + '\n';
}
if (message.length > 0) {
alert(message);
}
}
$('#btn-form-submit').click(function(){
$('#form-register').submit();
popupFormErrors('#btn-form-submit');
return false;
});
$('#form-register').validate({
errorPlacement: function(error, element) {/* no room on page */},
highlight: function(element) { $(element).addClass('invalid-input'); },
unhighlight: function(element) { $(element).removeClass('invalid-input'); },
...
});
Обновление От информации в принятом ответе я придумал это.
var submitClicked = false;
$('#btn-form-submit').click(function() {
submitClicked = true;
$('#form-register').submit();
return false;
});
$('#form-register').validate({
errorPlacement: function(error, element) {/* no room on page */},
highlight: function(element) { $(element).addClass('invalid-input'); },
unhighlight: function(element) { $(element).removeClass('invalid-input'); },
showErrors: function(errorsObj) {
this.defaultShowErrors();
if (submitClicked) {
submitClicked = false;
... create popup from errorsObj...
}
}
...
});
Вам действительно стоит обратить внимание на использование следующей опции для проверки jQuery
showErrors
вот ссылка на документацию http://docs.jquery.com/Plugins/Validation/validate#options