Как предотвратить отправку формы с использованием 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;
});
});
Что может быть не так?
Обновление - вот мой HTML:
<form id="form" class="form" action="page2.php" method="post">
<!-- tags in the form -->
<p class="class2">
<input type="submit" value="Okay!" />
</p>
</form>
Здесь что-то не так?
return false;
после того, как.submit()
работал для меня! У меня была та же проблемаe.preventDefault();
код не достигается / не выполняется.Ответы:
Выделяются две вещи:
form
. Скорее обратитесь к тегу, опустив #.Также
e.preventDefault
правильный синтаксис JQuery, напримерВариант C также должен работать. Я не знаком с вариантом B
Полный пример:
источник
$('#form')
на$('.form')
для атрибутов класса.Вероятно, у вас есть несколько форм на странице, и использование $ ('form'). Submit () добавляет это событие к первому появлению формы на вашей странице. Вместо этого используйте селектор класса или попробуйте это:
или лучшая версия этого:
источник
Для предотвращения использования по умолчанию / предотвращения отправки формы
Чтобы остановить всплытие событий, используйте
Чтобы предотвратить отправку формы, также должно работать «return false».
источник
event.stopPropagation()
иevent.preventDefault()
A.false
Значение может быть передано для обработчика как сокращенная записьfunction(){ return false; }
.»У меня тоже была такая же проблема. Я также попробовал то, что вы пытались. Затем я изменяю свой метод не на использование jquery, а на использование атрибута «onsubmit» в теге формы.
Оно работает.
Но когда я пытался поместить ложное возвращаемое значение только в "thefunction ()", это не мешает процессу отправки, поэтому я должен поставить "return false;" в атрибуте onsubmit. Итак, я заключаю, что мое приложение формы не может получить возвращаемое значение из функции Javascript. Я понятия не имею об этом.
источник
false;
иreturn false;
. Вам нужно будетonsubmit="return thefunction();"
У меня была такая же проблема, и я решил это (не элегантно, но работает):
И это имеет преимущество, на мой взгляд, в том, что вы можете изменить ситуацию в любое время:
источник
$('#form').removeAttr('onsubmit');
Присоедините событие к элементу отправки, а не к элементу формы. Например, в вашем HTML сделать так
источник
Вы можете просто проверить, является ли форма действительной, если да, запустите отправку логики, в противном случае выведите ошибку.
HTML
Javascript
источник
Когда я использую
<form>
тег без атрибутаid="form"
и вызываю его по имени тега непосредственно в jquery, он работает со мной.Ваш код в HTML-файл:
и в сценарии Jquery:
источник
$('#form')
ищет элемент сid="form"
.$('form')
ищет элемент формыисточник
Вы забыли идентификатор формы, и это работает
источник
отсюда: https://api.jquery.com/submit-selector/ (интересная страница о типах отправки)
источник
Это также, кажется, работает и может быть немного проще:
источник
Используя jQuery, вы можете сделать следующее:
1- Используйте исходное событие отправки формы с кнопкой «Отправить», при этом предотвращая запуск события, затем
2- Проверьте правильность формы. Это может быть реализовано следующим образом:
1- HTML:
2- Javascript
источник