Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2017, 22:31   #1
Pavll
Пользователь
 
Регистрация: 03.11.2017
Сообщений: 24
По умолчанию Создание формы на html-странице. Нет реакции скрипта - обработчика формы.

Добрый день!
Создал html-страницу. Затем вставил в эту страницу html-форму. Осталось, только прикрепить обработчик формы для проверки ввода э-мейла. Вставил скрипт, но html-страница на него никак не реагирует. Помогите разобраться - почему?
Код html-страницы:

Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/jquery.maskedinput.js"></script>
<script type="text/javascript">
jQuery(function($){
   $("#phone").mask("+7 (999) 999-9999");
   $("#phone2").mask("+7 (999) 999-9999");
});
</script>
</head>
<body>
<div id="inline">
<h2>Онлайн заявка</h2>
<form id="contact" action="#" method="post" name="contact">
<input id="name" class="txt" name="name" type="name" placeholder="Ваше имя" />
<input id="phone" class="txt" name="phone" type="phone" placeholder="Ваш телефон" />
<input id="email" class="txt" name="email" type="email" placeholder="Ваш e-mail" />
<textarea id="msg" class="txtarea" name="msg" placeholder="Ваше сообщение:"></textarea>
<button id="send">Отправить</button>
</form>
</div>
 
 
<script type="text/javascript">
  function validateEmail(email) {
    var reg = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i;
    return reg.test(email);
  }
  $(document).ready(function() {
    $(".modalbox").fancybox();
    $("#contact").submit(function() { return false; });
    $("#send").on("click", function(){
      var emailval  = $("#email").val();
      var namevl  = $("#name").val();
      var phonevl  = $("#phone").val();
      var msgval    = $("#msg").val();
      var msglen    = msgval.length;
      var mailvalid = validateEmail(emailval);
      if(mailvalid == false) {
        $("#email").addClass("error");
      }
      else if(mailvalid == true){
        $("#email").removeClass("error");
      }
  if(mailvalid == false) {
        $("#name").addClass("error");
      }
      else if(mailvalid == true){
        $("#name").removeClass("error");
      }
      if(mailvalid == false) {
        $("#phone").addClass("error");
      }
      else if(mailvalid == true){
        $("#phone").removeClass("error");
      }
      if(msglen < 4) {
       $("#msg").addClass("error");
     }
     else if(msglen >= 4){
        $("#msg").removeClass("error");
      }
     
      if(mailvalid == true && msglen >= 4) {
       // если обе проверки пройдены
       // сначала мы скрываем кнопку отправки
       $("#send").replaceWith("<em>отправить...</em>");
        $.ajax({
          type: 'POST',
          url: 'sendmessage.php',
          data: $("#contact").serialize(),
          success: function(data) {
            if(data == "true") {
              $("#contact").fadeOut("fast", function(){
                $(this).before("<p><strong>Успешно! Ваше сообщение отправлено  :)</strong></p>");
                setTimeout("$.fancybox.close()", 1000);
              });
            }
          }
        });
      }
    });
  });
</script>
</body>
</html>
php-код обработчика формы:

Код:
<?php
$sendto   = "pochta@mail.ru"; // Обязательно измените e-mail на свой
$usermail = $_POST['email'];
$username = $_POST['name'];
$userphone = $_POST['phone'];
$content  = nl2br($_POST['msg']);
// Формирование заголовка письма
$subject  = "Новое сообщение";
$headers  = "From: " . strip_tags($usermail) . "\r\n";
$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";
// Формирование тела письма
$msg  = "<html><body style='font-family:Arial,sans-serif;'>";
$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Новое сообщение</h2>\r\n";
$msg .= "<p><strong>Имя:</strong> ".$username."</p>\r\n";
$msg .= "<p><strong>Номер телефона:</strong> ".$userphone."</p>\r\n";
$msg .= "<p><strong>Почта:</strong> ".$usermail."</p>\r\n";
$msg .= "<p><strong>Сообщение:</strong> ".$content."</p>\r\n";
$msg .= "</body></html>";

// отправка сообщения
if(@mail($sendto, $subject, $msg, $headers)) {
	echo "true";
} else {
	echo "false";
}

?>

Последний раз редактировалось Alex11223; 03.11.2017 в 22:34.
Pavll вне форума Ответить с цитированием
Старый 03.11.2017, 22:35   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://learn.javascript.ru/devtools
https://learn.javascript.ru/debugging-chrome
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.11.2017, 21:41   #3
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

У вас проблема - Вы смешали в кучу браузерный обработчик формы и серверный, плюс захрендячили jQuery когда он нахрен не нужен, и делаете проверку, которая тоже не нужна.

Корректность e-mail-а следует проверять на сервере, т.к. он синтаксически может и правильный, но не существующий. В браузере максимум следует переспрашивать пользователя для защиты от опечаток.

Делайте по шагам:
1) Создайте простую форму.
2) Сделайте серверный обработчик и отладьте простое получение формы сервером.
3) Доведите форму до полноценной функциональности и доработайте серверный обработчик.
4) Добавьте onsubmit для проверки формы на стороне клиента.

И Боже вас упаси, пользовать jQuery до освоения JavaScript!
СтудПом вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пустое сообщение обработчика формы Sergun34 PHP 29 22.08.2017 00:08
Как сделать чтобы html код отображался на странице после отправки формы wade003 PHP 4 07.12.2016 09:19
Многократный, от одного обработчика вызов второй формы dim3740 C# (си шарп) 1 27.04.2014 12:27
создание обработчика для html-формы Lesy Помощь студентам 0 14.10.2011 23:17
не получается установка обработчика закрытия формы sergey113 Помощь студентам 2 14.09.2008 16:00