Подтвердить что ты не робот

Проверка 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() работает правильно, он по-прежнему вызывает побочные эффекты при отображении сообщений об ошибках.

Я не хочу, чтобы это произошло, помогите пожалуйста.

4b9b3361

Ответ 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