Что с этим не так?
HTML:
<form action="http://localhost:8888/bevbros/index.php/test" method="post" accept-charset="utf-8" id="cpa-form" class="forms">
<input type="text" name="zip" value="Zip code" id="Zip" class="required valid">
<input type="submit" name="Next" value="Submit" class="forms" id="1">
</form>
JQuery:
$("#cpa-form").submit(function(e){
e.preventDefault();
});
jquery
preventdefault
djreed
источник
источник
alert()
в обработчике отправки он вызывается? Если нет, то, возможно, в вашем скрипте есть ошибка, которая препятствует правильному подключению обработчика событий. Что-нибудь в консоли ошибок?Ответы:
Попробуй это:
источник
e.preventDefault()
отлично работает с отправкой формы, проблема лежит в другом месте кода ОП. Использованиеreturn false
может привести к непредвиденным последствиям.Используйте новый синтаксис события «on».
Цитировать: https://api.jquery.com/on/
источник
$(document).ready()
) Как мне заставить его работать?true
илиfalse
? Можете ли вы восстановить свой код в jsfiddle.net и отправить ссылку? Попробуйте добавить,alert()
чтобы подтвердить, что функция срабатывает. Некоторые люди сообщают, что добавлениеe.stopPropagation();
послеe.preventDefault();
прекращает запуск других связанных событий.$('#myFormID').validationEngine('validate')
из jQuery validationEngine в качестве переменнойvalid
, чтобы проверить, является ли ввод действительным адресом электронной почты. Тем не менее, я хочу предотвратить поведение по умолчанию в любом случае; этоpreventDefault
должно быть внутри , если блок, а не до него?preventDefault
Находится внутри , если не действительный блок , чтобы остановить подачу формы. Другими словами, если оно допустимо , используйте поведение формы по умолчанию.Я считаю, что приведенные выше ответы являются правильными, но это не указывает на то, почему
submit
метод не работает.Ну,
submit
метод не будет работать, если jQuery не может получитьform
элемент, и jQuery не выдает никакой ошибки по этому поводу. Если ваш скрипт находится в заголовке документа, убедитесь, что код запускается после того,DOM
как он готов . Итак,$(document).ready(function () { // your code here // });
решим проблему.Лучше всего всегда ставить сценарий внизу документа.
источник
Это древний вопрос, но принятый здесь ответ не доходит до корня проблемы.
Вы можете решить это двумя способами. Сначала с помощью jQuery:
Или без jQuery:
Вам не нужно использовать,
return false
чтобы решить эту проблему.источник
источник
источник
Ваш код в порядке, вам просто нужно поместить его в готовую функцию.
источник
Вы также можете попробовать этот код, если вы, например, позже добавили динамические формы. Например, вы загрузили окно async с помощью ajax и хотите отправить эту форму.
Случай 1, статическая версия: если у вас есть только несколько слушателей, и ваша форма для обработки жестко запрограммирована, то вы можете слушать непосредственно на «уровне документа». Я бы не использовал слушателей на уровне документов, но я бы попытался углубиться в дерево дум, потому что это может привести к проблемам с производительностью (зависит от размера вашего сайта и вашего контента)
ИЛИ
ИЛИ
ИЛИ
источник
.live()
устарела с jQuery 1.7 и удалена с 1.9. Используйте.on()
вместо этого.Здравствуйте, мы искали решение для работы формы Ajax с Google Tag Manager (GTM), возвращение false препятствовало завершению и отправляло активацию события в режиме реального времени в Google Analytics. Решение должно было изменить возвращаемое значение false с помощью e.preventDefault (). ; который работал правильно, следует код:
источник
e.preventDefault () работает нормально, только если у вас нет проблем с вашими javascripts, проверьте ваши javascripts, если e.preventDefault () не работает, есть вероятность, что некоторые другие части вашего JS также не работают
источник
Ну, я столкнулся с подобной проблемой. Проблема для меня заключается в том, что файл JS загружается до того, как происходит рендеринг DOM. Так что переместите ваш
<script>
в конец<body>
тега.или использовать отсрочку.
так что будьте уверены,
e.preventDefault()
должно работать.источник