2012-05-17 7 views
0

Я использую плагин проверки правильности jquery (http://docs.jquery.com/Plugins/Validation) с приложением asp.net.
Вот мой из элементов:Ошибка плагина валидатора отображается при запуске

<input id="chbConfirmDetails" type="checkbox" runat="server" class="required" /> 
<br /> 
<label for="<%=chbConfirmDetails.ClientID %>" class="alert">Please select this checkbox.</label> 

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

Почему ошибка не скрыта?

UPDATE: я явно добавить метку, потому что я хочу, чтобы сообщение об ошибке, чтобы быть размещены в определенном положении, а не сразу после ввода.

+0

Вы не должны жёстко ярлыков ошибок - они добавляются в скрипте на кнопку. – jfrej

+0

@jfrej: Это пример для случаев, когда я хочу поместить метку в определенную позицию, а не сразу после ввода. – Naor

ответ

1

Не нужно добавлять любые явные разметки для вашего сообщения о проверке: плагин позаботится о его генерации при возникновении ошибок. Таким образом, поле ввода само по себе должно быть все, что вам нужно:

<input id="chbConfirmDetails" type="checkbox" runat="server" class="required" /> 

При настройке проверки, у вас есть контроль над тем, как плагин генерирует ошибки разметки - добавить класс «предупреждение», вам необходимо убедиться, что это установлено в вызове .validate(), например:

$("form").validate({ 
    errorClass: "alert" 
}) 
+0

Это пример для случаев, когда я хочу поместить метку в определенную позицию, а не сразу после ввода. – Naor

+0

Как @Sudhir упоминает в своем пересмотренном ответе, вы должны переопределить параметр «errorPlacement», чтобы контролировать, где находится DOM, сообщение об ошибке. Если вам нужен _really_ мелкомасштабный контроль над обработкой сообщений об ошибках, вы также можете пройти через пользовательскую функцию showErrors. –

+0

errorPlacement в соответствии с документацией: «Настроить размещение созданных меток ошибок». Я хочу настроить место размещения для одной метки ошибки. Согласно документации: «Сообщения об ошибках обрабатываются с помощью элементов ярлыков дополнительным классом (опция errorClass). Связь между сообщением и недопустимым элементом предоставляется через атрибут метки для атрибута. ** Когда они указаны в разметке, они отображаются и скрытые соответственно **, иначе создаются по требованию ». – Naor

0

Вы можете удалить эту строку:

<label for="<%=chbConfirmDetails.ClientID %>" class="alert">Please select this checkbox.</label> 

валидатор сам плагин присоединяет метку ошибки на проверки возвращения ложной ж с определенным классом.

Вы должны д.д. пользовательского errorPlacement обратного вызова, чтобы разместить сообщение об ошибке, например

errorPlacement: function(error, element) { 
      if (element.type == 'checkbox') { 
       error.insertAfter(element); //something like this, just an example 
      } 
      else { 
       error.insertAfter(element); 
      } 
     } 
+0

См. Обновление. – Naor

+0

Или может использовать параметр errorLabelContainer? – jfrej

Смежные вопросы