Нужен ли тег формы в веб-приложении AJAX? - PullRequest
15 голосов
/ 24 апреля 2010

Я прочитал учебник по AJAX-форме, например this . Тег форма используется в коде HTML. Однако я считал, что в этом нет необходимости. Поскольку мы отправляем HTTP-запрос через XmlHttpRequest , отправленные данные могут быть любыми, необязательными ввод в форме .

Итак, есть ли причина иметь тег form в HTML для приложения AJAX?

Ответы [ 4 ]

6 голосов
/ 24 апреля 2010

Помимо прогрессивного улучшения, как уже обсуждалось (не заставляйте ваш сайт требовать JavaScript, пока это действительно не требуется), <form> с onsubmit будет необходимо для надежного перехвата ввода нажатия клавиши Enter .

(Конечно, вы можете попробовать перехватывать нажатия клавиш на отдельных полях формы, но это неудобно, хрупко и никогда не будет на 100% воспроизводить поведение браузера по сравнению с тем, что составляет отправку формы.)

5 голосов
/ 24 апреля 2010

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

В противном случае, если приложение создает и отправляет AJAX-запрос, нет веских причин для использования form, за исключением редких особых случаев, когда на самом деле требуется элемент формы. С макушки головы:

  • при использовании функции сериализации формы jQuery
  • при мониторинге всех полей в форме изменений
  • когда необходимо использовать кнопку reset form (насколько мне известно, доступно только в правильном <form>).
3 голосов
/ 24 апреля 2010

Я вижу как минимум две возможные причины:

  • Изящная деградация (см. Также Ненавязчивый JavaScript ) : если у пользователя не включен JavaScript в его браузере, ваш сайт все еще должен работать, с простым старым HTML.
  • Поведение браузера: пользователи знают, как выглядят формы и как они ведут себя (автозаполнение, исправление ошибок, ...) ; лучше не уходить слишком далеко от этого


И я бы добавил, что если вы хотите, чтобы пользователь вводил некоторые данные, поэтому существуют теги <form> и <input>; -)

Использование правильных тегов также помогает пользователям - например, подумайте о слепых пользователях, которые используют какое-то определенное программное обеспечение: это программное обеспечение, вероятно, будет иметь определенное поведение для форм полей ввода.

0 голосов
/ 24 апреля 2010

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

Будут другие случаи, когда вы не отправляете данные из формы, и в этом случае у вас не будет формы, о которой следует беспокоиться:)

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