2013-06-20 3 views
4

JQuery Validate перехватывает требуемый атрибут, например.Требуется ввод HTML5 - как отключить

<input type="text" required /> 

Это приведет к проверке на стороне клиента поля, которое отлично. Теперь это также является частью спецификации HTML5 и заставляет браузеры поддерживать это, чтобы показывать сообщения проверки, даже если JavaScript отключен.

В моем приложении я уже построил проверку на стороне сервера, которой я доволен, поэтому я хочу прекратить это поведение. Поэтому мой вопрос: как вы можете отключить эту проверку HTML5?

Update Там, кажется, некоторая путаница, в основном я доволен JQuery проверки интерпретации, что и стрельбу проверки, что является большим. Однако, если пользователь отключен JavaScript, я хочу, чтобы проверка вернулась к проверке на стороне сервера, которую я уже написал. Однако, поскольку JQuery Validate и HTML5 используют одну и ту же метку, она не отправляет форму, а скорее показывает сообщения проверки HTML5, которые я хочу отключить. Имеет ли это смысл?

+4

Удалить атрибут 'required'? –

+0

Зачем вы хотите отключить его? Валидация на стороне клиента обычно должна быть просто дополнительной предварительной проверкой для удобства пользователя, а не заменой для проверки на стороне сервера. Вы должны отключить проверку на стороне клиента (путем удаления атрибута 'required') только в том случае, если вы хотите разрешить пользователям отправлять недействительные данные (данные, которые затем будут отвергнуты с помощью проверки на стороне сервера). –

+0

См. Мое обновление по причинам. – baynezy

ответ

10

Добавить параметр novalidate в объекте формы, чтобы остановить браузер, проверяющий форму.

<form action="test.do" novalidate> 
    <input type="text" required /> 
</form> 
+0

Спасибо. Это сработало. – baynezy

0

HTML-совместимые браузеры будут интерпретировать это как обязательное поле, поэтому на самом деле нет способа остановить его. Добавляя это, вы говорите, это требуется.

Вот идея, которую вы могли бы попробовать. Существует еще один атрибут «шаблон», где вы можете предоставить выражение для проверки. Возможно, если вы примете все, то проверка HTML5 в браузере просто пройдет все и позволит разрешить вашу проверку на jquery.

<input type="url" required pattern="*" /> 

Я не тестировал это, и это теория. Если это сработает, то это потрясающе. ;)