Использование JQuery – предотrotation отправки формы
Как предотвратить отправку формы с помощью jquery?
Я пробовал все – см. 3 разных варианта, которые я пробовал ниже, но все это не сработает:
$(document).ready(function() { //option A $("#form").submit(function(e){ e.preventDefault(); }); //option B $("#form").submit(function(e){ stopEvent(e); }); //option C $("#form").submit(function(){ return false; }); });
Что может быть неправильным?
- Предоставляет ли ASP.NET Web Forms возможность двойного щелчка?
- Можем ли мы использовать несколько форм на веб-странице?
- Как читать данные в формате PDF с помощью iTextSharp?
- Как написать «Html.BeginForm» в Razor
- Nodejs POST запрос multipart / form-data
Обновление – вот мой html:
Здесь что-то не так?
- Добавление вызывает java.lang.IllegalStateException: не удается создать сеанс после того, как ответ был зафиксирован
- MVC публикует список сложных объектов
- Как вы создаете сообщения для проверки формы HTML5?
- Как mime-тип загруженного файла определяется браузером?
- Play 2.4: Форма: не удалось найти неявное значение для сообщений параметров: play.api.i18n.Messages
- jQuery .val () vs .attr ("value")
- jqGrid - Как изменить конструкцию form_editing?
- Несколько форм на одной странице с использованием колбы и WTForms
Выделяются две вещи:
- Возможно, ваше имя
form
не являетсяform
. Скорее обратитесь к тегу, отбросив #. -
Также
e.preventDefault
является правильным синтаксисом JQuery, например//option A $("form").submit(function(e){ e.preventDefault(); });
Вариант C также должен работать. Я не знаком с вариантом B
Полный пример:
Вероятно, у вас мало форм страницы и с помощью $ (‘form’). Submit () добавляет это событие к первому вхождению формы на вашей странице. Вместо этого используйте селектор classов или попробуйте следующее:
$('form').each(function(){ $(this).submit(function(e){ e.preventDefault(); alert('it is working!'); return false; }) })
или лучшей его версии:
$(document).on("submit", "form", function(e){ e.preventDefault(); alert('it works!'); return false; });
Преобладать дефолт / предотвращать использование формы
e.preventDefault();
Чтобы остановить использование событий
e.stopPropagation();
Чтобы предотвратить отправку формы, «return false» также должен работать.
У меня также была та же проблема. Я также пробовал то, что вы пробовали. Затем я меняю свой метод, чтобы не использовать jquery, но используя атрибут onsubmit в теге формы.
Оно работает.
Но, когда я пытался поставить значение ложного возврата только в «the function ()», это не мешает процессу отправки, поэтому я должен поставить «return false»; в атрибуте onsubmit. Итак, я пришел к выводу, что мое приложение формы не может получить возвращаемое значение из функции Javascript. Я понятия не имею об этом.
У меня была та же проблема, и я решил так (не элегантный, но он работает):
$('#form').attr('onsubmit','return false;');
И это имеет, на мой взгляд, преимущество, что вы можете вернуться к ситуации в любое время:
$('#form').attr('onsubmit','return true;');
Когда я использую
без атрибута id="form"
и вызываю его по имени своего тега непосредственно в jquery, он работает со мной.
ваш код в файле html:
и в сценарии Jquery:
$(document).ready(function() { $('form').submit(function(evt){ evt.preventDefault();// to stop form submitting }); });
Вы забыли идентификатор формы, и он работает
$('form#form').submit(function(e){ e.preventDefault(); alert('prevent submit'); });
// Prevent form submission $( "form" ).submit(function( event ) { event.preventDefault(); });
отсюда: https://api.jquery.com/submit-selector/ (интересная страница о типах отправки)
$("#form')
ищет элемент с id="form"
.
$('form')
ищет элемент формы