@lexstile

Почему отправляется форма?

Не понимаю, почему стандартное действие формы не отменяется.
На других своих сайтах работает. В чем может быть причина?
<div style="display: none;">
	<div id="cunsult">
		<form id="f-call" action="" method="POST" onsubmit="one_click(); return false;">
			<p>Заголовок</p>
			<input id="client-name" name="name" class="form-input" type="text" placeholder="Ваше имя...">
			<input id="client-phone" name="phone" class="form-input" type="text" placeholder="Ваш телефон...">
			<input type="submit" value="Получить консультацию">
			<p class="f-success">Ваша заявка принята!</p>
			<p class="f-error-phone">Укажите свой телефон!</p>
			<p class="f-error">Не удалось отправить сообщение!</p>
		</form>
	</div>
</div>

function one_click(){
	var message = '';
	var client_name = $("#client-name").val();
	var client_phone = $("#client-phone").val();
	if (client_phone == ''){
		$('.f-error-phone').slideDown();
		setTimeout(function(){ $('.f-error-phone').slideUp(); }, 3000);
		return;
	}else{
		message = 'Телефон: ' + client_phone + '<br /> Имя: ' + client_name;
		$.ajax({
			url: '/mailer/send_letter.php',
			type: 'post',
			data: 'mode=one_click&message=' + message,
			dataType: 'text',
			success: function(data) {
				if (data = '0'){
							$('.f-success').slideDown();
							setTimeout(function(){ $('.f-success').slideUp(); }, 3000);
							function func() {
							  location.reload();
							}

							setTimeout(func, 2000);
				}else{
				$('.f-error').slideDown();
				setTimeout(function(){ $('.f-error').slideUp(); }, 3000);
				return;
				}
			}
		});
	}
}
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
<form id="f-call" action="" method="POST">

var form = document.getElementById('f-call');

form.addEventListener('submit', function(e) {
  e.preventDefault();
  one_click();
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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