поведение при отправке средства проверки jquery

#jquery #asp.net #jquery-plugins

#jquery #asp.net #jquery-плагины

Вопрос:

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

  <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:

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

Например, вы можете использовать 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 . Однако вам нужно было бы предоставить немного больше деталей для конкретного примера.

Комментарии:

1. Спасибо за ответ и идею. Вы сказали, что это разрешает публикацию ajax, позволит ли это стандартную ASP.NET отправка (submit)? Поддерживает ли он проверки регулярных выражений?

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

3. Спасибо. Кроме того, вы случайно не знаете, позволяет ли это настраивать отображение предупреждений, чтобы оно выглядело как ASP.NET сообщение валидатора выделено красным текстом, и вы можете перейти к нему (для пользователей с ограниченными возможностями)?

4. Вы должны иметь возможность легко настраивать внешний вид полей с помощью css, я не уверен, как вы могли бы реализовать табуляцию, но я уверен, что это можно сделать.

5. В принципе, все, что мне нужно, это назначить определенный класс css для этой красной метки.