Проверка JQuery: вызов Действителен без отображения ошибок?
Используя плагин JQuery Validation, я пытаюсь вызвать метод .valid() без побочных эффектов отображения сообщений об ошибках на экране. Я пробовал несколько сценариев без успеха, мое последнее существо:
$('#signup').validate({
showErrors: function() { return; },
errorElement: "",
errorClass: "",
errorPlacement: function() { },
invalidHandler: function() { },
highlight: function(element, errorClass) { },
unhighlight: function(element, errorClass) { }
});
$('#displayPurposes').text("Valid: " + $("#EMailAddress_EmailAddress").valid());
В то время как вызов .valid() работает правильно, он по-прежнему вызывает побочные эффекты при отображении сообщений об ошибках.
Я не хочу, чтобы это произошло, помогите пожалуйста.
Ответы
Ответ 1
Вместо того, чтобы пытаться отключить любое размещение ошибок, сделанное плагином, вы можете использовать CSS для "принудительного" скрытия элементов сообщения об ошибках создания. Что-то вроде:
label.myvalidationclass { display: none !important; }
Где myvalidationclass
- либо имя класса ошибки по умолчанию, либо ваш собственный.
Я знаю, что это не очень хорошее решение, но, на мой взгляд, отображение сообщений об ошибках является одной из основных особенностей плагина.
д.
Ответ 2
Вы можете сделать это без использования CSS-хаков, вызвав checkForm()
.
var isValid = $('#signup').validate().checkForm(); // true|false
checkForm()
не вызывает изменения пользовательского интерфейса.
Однако есть один побочный эффект. Теперь поля формы будут проверяться на изменение/фокус/размытие, что может быть нежелательным. Вы можете отключить это поведение, сбросив объект submitted
:
$('#signup').validate().submitted = {};
Результат:
var validate = $('#signup').validate(); // Get validate instance
var isValid = validate.checkForm(); // Valid?
validate.submitted = {}; // Reset immediate form field checking mode