На пустой странице есть форма. Моя задача - выполнить свой код вместо отправки этой формы.
Саму страницу редактировать не могу, так как это онлайн-конструктор, но могу добавлять свой код.
Никак не удается отменить отправку, хотя submit
перехватываю. e.preventDefault()
и return false
не помогают.
Например такой код отправку перехватывает, но форма все равно отправляется.
<script>
$(".step1").submit ( function(e) {
e.preventDefault();
console.log('Перехват submit!');
return false;
});
</script>
Не могу понять в чем причина.
<div class="container">
<div class="cont">
<div class="node node7 widget widget-form step1" outline="2">
<div class="wrapper1">
<div class="wrapper2">
<div class="macros-form">
<div class="outer" style="max-width: 350px;">
<div class="inner">
<div class="vertical none size-big">
<div class="head">
<div class="textable">
<p><strong>Шаг 1/2</strong></p>
</div>
</div>
<div class="body">
<div class="cont"></div>
<form class="form text-in" data-form="{"name":"Расчет","type":"order","privacy":"none","privacy_checkbox":"Даю согласие на <обработку персональных данных>","after":"msg","msg":"Спасибо!\nВаша заявка отправлена.\nВ ближайшее время мы с Вами свяжемся!","url":"","addhtml":"","js":"alert(\"Этот код выполняется после успешного отправления заявки.\");","integrations":[]}"
data-fields="[{"name":"Имя","type":"name","required":true,"id":""},{"name":"Телефон","type":"phone","required":true,"id":""}]">
<div class="fields">
<div class="field" data-type="name">
<div class="input"><input class="form-control text" type="text" data-placeholder="true" value="Имя *" style="border-radius: 1px;"></div>
</div>
<div class="field" data-type="phone">
<div class="input"><input class="form-control text" type="text" data-placeholder="true" value="Телефон *" style="border-radius: 1px;"></div>
</div>
</div>
<div class="macros-button">
<div class="btn-out full xs-none">
<div class="btn-inner"><button class="btn font-text submit" id="uid5" data-ym_goal="" data-ga_category="" data-ga_action=""><span class="text">Следующий шаг</span><input type="submit"></button></div>
</div>
</div>
</form>
<div class="cont"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Вам нужно подсоединить обработчик события submit
к элементу формы, который находится внутри .step1
:
$(".step1 form").submit ( function(e) {
...
});
$(".step1").submit(function(e) {
e.preventDefault();
console.log('Перехват submit!');
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="cont">
<div class="node node7 widget widget-form step1" outline="2">
<div class="wrapper1">
<div class="wrapper2">
<div class="macros-form">
<div class="outer" style="max-width: 350px;">
<div class="inner">
<div class="vertical none size-big">
<div class="head">
<div class="textable">
<p><strong>Шаг 1/2</strong></p>
</div>
</div>
<div class="body">
<div class="cont"></div>
<form class="form text-in" data-form="{"name":"Расчет","type":"order","privacy":"none","privacy_checkbox":"Даю согласие на <обработку персональных данных>","after":"msg","msg":"Спасибо!\nВаша заявка отправлена.\nВ ближайшее время мы с Вами свяжемся!","url":"","addhtml":"","js":"alert(\"Этот код выполняется после успешного отправления заявки.\");","integrations":[]}"
data-fields="[{"name":"Имя","type":"name","required":true,"id":""},{"name":"Телефон","type":"phone","required":true,"id":""}]">
<div class="fields">
<div class="field" data-type="name">
<div class="input"><input class="form-control text" type="text" data-placeholder="true" value="Имя *" style="border-radius: 1px;"></div>
</div>
<div class="field" data-type="phone">
<div class="input"><input class="form-control text" type="text" data-placeholder="true" value="Телефон *" style="border-radius: 1px;"></div>
</div>
</div>
<div class="macros-button">
<div class="btn-out full xs-none">
<div class="btn-inner"><button class="btn font-text submit" id="uid5" data-ym_goal="" data-ga_category="" data-ga_action=""><span class="text">Следующий шаг</span><input type="submit"></button></div>
</div>
</div>
</form>
<div class="cont"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Даже Ваш код работает - смотрите пример. При чем любого из двух методов остановки сабмита (e.preventDefault();
или return false;
) - достаточно. В Вашем коде есть еще что-то, чего Вы не показали, а я не могу догадаться, так как израсходовал большую часть сегодняшнего запаса телепатии на Функция load выполняется два раза подряд.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется скрипт манипуляции атрибутом на jqueryНужно переписать на js
Мне надо написать расширение которое изменяет высоту строки на сайтахЯ сделал слайдер на jquery ui, но вот как мне сделать чтоб это значение применялось...
Есть простая html страница с popup'омНужно запускать python скрипт при открытии попапа (попап открывается при нажатии на кнопку)