JQuery валидатор представить поведение - PullRequest
0 голосов
/ 03 мая 2011

У меня довольно большая форма ввода с несколькими валидаторами ASP.NET, большинство из которых являются RegexVlidators. Валидаторы прекрасно работают на стороне клиента и предотвращают обратную передачу (отправку), если это необходимо. Но теперь мы должны при проверке и отображении ошибок, как и раньше, также разрешать обратную передачу. Я должен заменить свой RegexValidators на плагин валидатора jquery, поэтому мой вопрос: можно ли использовать плагин валидатора, чтобы он отмечал и отображал ошибки, но не мешал отправке / обратной передаче? Если нет, что может быть использовано для этого, кроме нестандартного решения)? Типичный используемый валидатор выглядит так:

 <asp:RegularExpressionValidator 
                                ID = "ContactEMailValidator" 
                                runat = "server" 
                                ControlToValidate = "ContactEMail"
                                ErrorMessage = "Contact Email is not a valid e-mail." 
                                ValidationGroup="WorkflowsAndIneligible"
                                ValidationExpression = "^\s*\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*$"
                                SetFocusOnError = "true">
                            </asp:RegularExpressionValidator>

Помимо проверки, он выполняет ряд других функций - устанавливает фокус на неправильном управлении вводом, отображает сообщение об ошибке с вкладками

1 Ответ

1 голос
/ 03 мая 2011

Я использую встроенный механизм проверки абсолютного положения, чтобы сделать что-то подобное. Это позволяет вам полностью контролировать сообщения об ошибках, не предотвращая обратную передачу в случае необходимости.

Например, вы можете использовать опцию showPrompt, чтобы отобразить поле ошибки над полем формы, но при этом разрешить публикацию в ajax.

$('#FormFieldID').validationEngine('showPrompt', 'This a custom error msg', 'error', true)

Больше информации здесь - https://github.com/posabsolute/jQuery-Validation-Engine

РЕДАКТИРОВАТЬ: просто краткий пример того, как вы могли бы использовать это в производстве -

    $('#submitButton').click(function(){
        $form = $('#MyForm');
        $form.validationEngine();
        if($form.validationEngine({returnIsValid:true})){
            $form.submit()
        }
    });

Этот пример блокирует отправку формы, и вы можете легко вывести / отобразить ваши ошибки в блоке else. Если вы не хотите блокировать отправку формы, вы можете просто проигнорировать оператор if и отправить форму независимо и вывести свои ошибки из ValidationEngine. Вы должны будете предоставить немного больше деталей для конкретного примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...