Как остановить отправку формы на jQuery?
Вообще говоря остановить отправку формы не так просто, потому, что во-первых скорее всего это произойдет настолько быстро, что Javascript не успеет даже обратиться к браузеру, а во-вторых у Javascript просто нет такой возможности. Но другое дело, если ты работаешь с jQuery.
Чтобы иметь возможность остановить отправку формы на пол-пути необходимо осуществлять саму отправку при помощи Ajax. Вот так:
Отправка формы через Ajax на jQuery
Это форма, и для отправки возьмем:
var ajax_request; $('form#form').submit(function(e){ e.preventDefault(); var vars=$(this).serialize(); var furl=$(this).attr('action'); ajax_request=$.ajax({ url: furl, data: vars, success: function(msg) { console.log(msg); } }); })
Итак, при отправке формы (при нажатии на Enter в поле для ввода, либо при клике на кнопку «Отправить» будет происходить следующее:
- отмениться стандартное действие формы по сабмиту (собственно, не произойдет перезагрузка страницы)
- данные всех поле в форме запишуться в переменную vars в виде: var=value&var2=value2&…
- значение атрибута action формы запишеться в переменную furl
- по указанному адресу отправяться введенные данные при помощи технологии Ajax, а по завершении отправки ответ сервера выведелься в console
Если ты уже раньше отправлял форму Ajaxом, то наверняка задумался: «А зачем здесь переменная ajax_request«. Именно благодаря ей мы и сможем остановить загрузку формы.
Внимание! эта переманная должна быть глобальной, ну или по крайней мере в области видимости и события отправки формы и клика на кнопку остановки отправки формы.
Остановка отправки формы на jQuery
Допустим мы хотим остановить отправку формы по нажатию на ссылку «Стоп»:
Стоп
И обработчик события нажатия на эту ссылку:
$('#stop').click(function(){ ajax_request.abort(); })
И всё. Вся остановка отправки формы заключается в прерывании конкретного Ajax запроса при помощи функции abort.
Главное теперь, чтобы после отправки формы кто-нибудь успел нажать на ссылку «Стоп», потому, что форма уйдет очень быстро.
Напомню, контекстная реклама нужна для того, чтобы привлекать посетителей на ваш сайт. Если у вас ещё нет сайта, рекомендую воспользоваться услугой разработка сайтов от компании wykiwyl. А уже когда будет сайт — включайте контекстную рекламу.