Должен ли я использовать тег FORM? - PullRequest
4 голосов
/ 06 июля 2011

Я использую jQuery для создания ajax-сайта. Обычно я использую селекторы jQuery для ссылки на отдельные элементы INPUT / BUTTON / TEXTAREA / etc, с которыми я хочу взаимодействовать (или получать значения).

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

Одна вещь, на которую следует обратить внимание: меня не беспокоит постепенное ухудшение в отсутствие JavaScript (это корпоративная локальная сеть; все установки браузера строго регламентированы, а у всех пользователей есть javascript). С учетом сказанного, , есть ли какая-то причина, по которой я должен начать использовать тег FORM, который я просто не вижу?

Ответы [ 4 ]

2 голосов
/ 06 июля 2011

Да, вы все равно должны использовать теги формы. Если вы хотите быть по-настоящему техническим, вероятно, неплохо было бы использовать и запасной вариант, отличный от JavaScript. Но независимо от этого, основная причина для продолжения использования <form>, <fieldset>, <legend> и <label> заключается в соответствии доступности.

Формы - действительно больное место, когда дело доходит до доступности сети. Они должны проводиться идеально для бесперебойной работы с программами чтения с экрана или другими вспомогательными технологиями. На самом деле, в соответствии с законами и правилами ADA и Раздела 508, все эти теги обязательны при заполнении форм в Интернете. Многие люди утверждают, что федеральные правила применяются только к веб-сайтам правительства и штата, но вы можете сообщить об этом Target , которому предъявили иск по вопросам доступности веб-сайтов.

Действительно, хорошая идея - просто соблюдать правила. И, лично, отправить форму с AJAX или без нее довольно легко. Например, в настоящее время у меня есть несколько форм, которые необходимо использовать без JavaScript. Все формы проверяются и отправляются с помощью JavaScript (да, они также проверяются с помощью сценария PHP). Скрипт, который отправляет JavaScript, - это та же страница, что и обычная форма, отправляемая через cURL. Одна страница процесса для двух разных методов с одинаковыми результатами (доставляется в JSON и декодируется с помощью jQuery или PHP json_decode), только версия JavaScript чище, элегантнее и более плавно.

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

2 голосов
/ 06 июля 2011

Ну, элементы формы должны входить в ... формы, верно? Спецификация HTML5 (и почти любая спецификация HTML) не требует наличия <input> элементов и т. Д. В элементах <form>, но на самом деле у вас не будет формы на странице, если вы не укажете в разметка, что есть, на самом деле, форма.

Полагаю, вам даже будет проще иметь дело с отправкой форм, если jQuery, помимо прочего, знает, какая форма также отправляется.

Кроме того, у вас есть пользователи, у которых отключен JavaScript. Даже если вы не заботитесь об этих пользователях, все равно важно, чтобы ваше веб-приложение могло обрабатывать «традиционные» формы, если они не обрабатываются jQuery / Ajax и т. Д.

1 голос
/ 06 июля 2011

Да.

Когда JavaScript отключен, с помощью вы все равно можете отправлять данные на сервер. Учитывая действующие правила HTML, тег FORM необходим вокруг элементов формы. Кроме того, средства обеспечения доступности, такие как средства чтения с экрана, могут использовать теги FORM для предоставления пользователям дополнительной информации.

Итак, вы должны использовать тег FORM. :)

0 голосов
/ 06 июля 2011

Хорошая причина их использования заключается в том, что вы можете легко использовать http://api.jquery.com/serialize/ и http://api.jquery.com/serializeArray/ на <form> s и более легко использовать сообщения HTTP (как вы уже упоминали).

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