@IgorRastarov

Почему вместо submit срабатывает click?

Стандартная форма обратной связи одного битркисовского шаблона
<h2><?=GetMessage("MFT_ORDER")?></h2>
<?if(!empty($arResult["ERROR_MESSAGE"]))
{
	foreach($arResult["ERROR_MESSAGE"] as $v)
		ShowError($v);
}
if(strlen($arResult["OK_MESSAGE"]) > 0)
{
	?><div class="mf-ok-text"><?=$arResult["OK_MESSAGE"]?></div><?
}
?>
<p class="note"><span><?=GetMessage("MFT_REQUIRED")?></span></p>
<form action="<?=POST_FORM_ACTION_URI?>#feedback" method="POST" class="form-main">
<?=bitrix_sessid_post()?>
	<div class="form-left">
	<fieldset>
		<label for="popup-order-name">
			<?=GetMessage("MFT_NAME")?><?if(empty($arParams["REQUIRED_FIELDS"]) || in_array("NAME", $arParams["REQUIRED_FIELDS"])):?><span class="mf-req">*</span><?endif?>
		</label>
		<input type="text" name="user_name" value="<?=$arResult["AUTHOR_NAME"]?>" id="popup-order-name" />
	</fieldset>
	
	<fieldset>
		<label for="popup-order-email">
			<?=GetMessage("MFT_EMAIL")?><?if(empty($arParams["REQUIRED_FIELDS"]) || in_array("EMAIL", $arParams["REQUIRED_FIELDS"])):?><span class="mf-req">*</span><?endif?>
		</label>
		<input id="popup-order-email" type="text" name="user_email" value="<?=$arResult["AUTHOR_EMAIL"]?>">
	</fieldset>
	
	<fieldset>
		<label for="popup-order-phone">
			<?=GetMessage("MFT_PHONE")?><?if(empty($arParams["REQUIRED_FIELDS"]) || in_array("PHONE", $arParams["REQUIRED_FIELDS"])):?><span class="mf-req">*</span><?endif?>
		</label>
		<input id="popup-order-phone" type="text" name="user_phone" value="<?=$arResult["AUTHOR_PHONE"]?>">
	</fieldset>
</div>
<div class="form-right">
	<fieldset>
		<label for="popup-order-msg">
			<?=GetMessage("MFT_MESSAGE")?><?if(empty($arParams["REQUIRED_FIELDS"]) || in_array("MESSAGE", $arParams["REQUIRED_FIELDS"])):?><span class="mf-req">*</span><?endif?>
		</label>
		<textarea name="MESSAGE" id="popup-order-msg"><?=$arResult["MESSAGE"]?></textarea>
	</fieldset>
</div>
<div class="clearfix"></div>
	<div class="text-center">
		<button type="submit" name="submit_contact" value="<?=GetMessage("MFT_SUBMIT")?>" class="btn btn-big"><span><?=GetMessage("MFT_SUBMIT")?></span></button>
	</div>
</div>
<script>
$( "form" ).submit(function( ) {
  yaCounterXXXXXXXXX.reachGoal('CALL'); return true;
});
</script>
</form>

Как видите, в самом низу стоит обработчик JQ для яндекс метрики. Проблема: Он срабатывает не только после успешной отправки формы, а просто на любой клик
по моему button. Хотя событие не onclick, а submit. Почему?

P.S. почему jq, а не
<form ......................... onsubmit=..............>

потому что тогда тоже счетчик крутит не успешную отправку формы, а клик на кнопку.
  • Вопрос задан
  • 483 просмотра
Пригласить эксперта
Ответы на вопрос 1
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
button внутри form предназначен для отправки данных на сервер. При клике всегда генерирует событие submit
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы