Плагин jQuery Form предлагает простоту использования ajax с формами.Он будет использовать атрибуты формы, чтобы определить, как и где отправить форму.Атрибут метода формы сообщает плагину тип запроса для использования.Атрибут действия формы указывает, куда отправить форму.
Рассматривая пример формы, подобной этой:
<form id="myform" action="submit.php" method="post">
<!--inputs and submit button go here-->
</form>
По сути, это позволяет вам писать:
$('#myform').ajaxForm();
вместо
$.post("submit.php", $("#myform").serialize());
Плагин jquery Form также позволит вам отправлять через Ajax из вашего кода.
$('#myform').ajaxSubmit();
Плагин jQuery Forms будет сериализовать форму в любом случае, вам придется сериализовать ее перед отправкой на сервер.Плагин jQuery Form просто сериализует форму за кулисами.Приведенные выше примеры не обрабатывают никаких ответов от сервера.
Используя приведенный ниже код, вы можете добавить ответ к элементам, атрибут класса которых содержит «результат».
$('#myform').ajaxForm({ target : ".result"});
Вы можете использовать любой селектор, который являетсяподдерживается в JQuery для целевой опции.
Я не уверен, можете ли вы использовать отложенные методы с ним или нет.Я сомневаюсь в этом, потому что совместимость для 1.3.2+ и нативные методы ajax обернуты в плагин.Такой, что отложенный объект никогда не возвращается из внутренних компонентов плагина.
Форма jQuery имеет опцию beforeSubmit, которую можно использовать.Таким образом, добавив к приведенному выше коду, мы получим:
$('#myform').ajaxForm({ target: ".result", beforeSubmit: function(arr, $form, options) {
// arr: The array of form data
// The array of form data takes the following form:
// [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
//some code to check if we already submitted the form
// return false to cancel submit
}
});
Однако я бы рекомендовал не делать этого, если пользователь завершил работу со страницей после отправки формы.Это только добавит ненужную сложность вашему клиентскому коду.Должно быть в порядке, если пользователь будет делать другие вещи на странице после отправки формы.Плагин jQuery Forms имеет опцию успеха, которая принимает функцию обратного вызова для вызова, если сервер возвращает ответ 200 «ОК».Вы также можете проверить веб-сайт авторов для плагина http://jquery.malsup.com/form/ для получения более подробной информации о плагине.