С JavaScript и AJAX, мне все еще нужен тег HTML <form>, и мне все еще нужно отправлять формы на сервер, используя кнопку "Отправить"? - PullRequest
11 голосов
/ 25 марта 2011

Когда я изучал HTML, CGI был королем, и правильным способом взаимодействия с сервером было размещение тегов <input> внутри тега <form>. Когда пользователь нажимал кнопку «отправить», на сервер отправлялось сообщение HTTP GET или HTTP POST, и браузер обновлялся с использованием HTML-кода, возвращенного из программы CGI на сервере.

Теперь я снова начал заниматься веб-вещанием и изучал JavaScript и jQuery. Поскольку jQuery может перехватывать такие события, как click, keypress и focusout, и может читать данные с $.ajax() и $.getJSON(), все еще существует необходимость иметь тег <form> вообще?

Может быть, "реальные формы" все еще необходимы, если я хочу поддерживать пользователей, у которых отключен JavaScript?

Ответы [ 3 ]

5 голосов
/ 25 марта 2011

Формы все еще могут вам помочь, но короткий ответ - нет, не совсем.

Если у вас есть группа входов, которые будут относиться к определенному запросу AJAX, тогда может быть проще сохранить их в их собственной форме для целей проверки / сериализации. Например:

$.ajax({
    url: 'ajax/test.html',
    dataType: 'json',
    method: 'POST',
    content: $('form#login_form').serialize(), // <-- Serialize elements only in
    success: function(data) {                  //     the login_form container.
        $('.result').html(data);
    }
});

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

1 голос
/ 25 марта 2011

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

<SELECT NAME="tree" onchange="doSomething( someVar );">

Но опять же, это зависит от того, каким элементом страницы вы хотите манипулировать.

1 голос
/ 25 марта 2011

Если вы используете ajax, если у вас нет прямых сообщений или сообщений, тег формы не требуется. Тем не менее, это все еще хороший HTML-дизайн.

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