Добрый день.
Пытаюсь сделать отправку формы на e-mail без перезагрузки страницы
по этому туториалу.
Всё работает кроме одного: при клике "Отправить", вместо того, чтобы в id='result' написать "Сообщение отправлено", у меня открывается страница send.php, которая прописана в myForm action. В чём беда не могу понять.
html
<div id='send-window'>
<form id="myForm" action="assets/scripts/send.php" method="post">
<input id='email' type="text" name="sub" value="Ваш e-mail"
onfocus="if (this.value=='Ваш e-mail') this.value='';" onblur="if (this.value=='') this.value='Ваш e-mail';"/>
<textarea class='message' name="mes" onfocus="if (this.value=='Сообщение') this.value='';"
onblur="if (this.value=='') this.value='Сообщение';">Сообщение</textarea>
<input class='button' type="submit" value="Отправить" />
</form>
<div id="result"></div>
<div id="close" onClick="hideSendWindow()">закрыть</div>
</div>
javsScript
<script src="assets/scripts/jquery.form.js"></script>
<script src="https://code.jquery.com/jquery.js"></script>
<script type="text/javascript">
// ожидаем загрузки всего документа
$(document).ready(function() {
// назначаем 'myForm' обрабатываемой формой и задаем ей простецкую функцию
$('#myForm').ajaxForm(function() {
document.getElementById("result").innerHTML="Сообщение отправлено"
setTimeout(function() { //скрываем окошко после отправки
$('#send-window').fadeOut('fast');
}, 1500); // время в миллисекундах
});
});
</script>
send.php
<?
$to = "raffx@yandex.ru";
$sub = $_POST['sub'];
$mes = $_POST['mes'];
mail($to,"$sub",$mes);
echo "Сообщение отправлено";
?>
Как сделать так, чтобы страница не перезагружалась, а в <div id="result"> появилась сообщение об успешной отправке?