Ошибка поля формы не заполнены

how do we display an error message when input are not filled?
here is my code:

<body>
    <form method="post">
        <label>Enter your name</label>
        <input id="myName" type="text" placeholder="Your name here"><br>
        <label>enter your first name</label>
        <input id="myFirstName" type="text" placeholder="Your first name here"><br>
        <input id="myButton" type="button" value="submit">
       </form>
        <p id="mydisplay"></p>
    <script src="script.js"></script>
</body>

function myFunction(){
    var x = document.getElementById("myName").value + "<BR>" + document.getElementById("myFirtName").value ;
    if (x != ""){
        alert("Thank you fill in the fields")
    } else{
        document.getElementById("myDisplay").innerHTML = x;
    }
}

window.addEventListener("click", function () {
    document.getElementById("myButton").addEventListener("click", myFunction);
});

yet I test the fields before but no error message is displayed to tell me that my input are empty.
on the other hand after that it shows me well what I mark in the input in the my page

asked May 16, 2019 at 15:49

ERK0SS's user avatar

4

Give this a go:

Checks to see if either is blank.

function myFunction(){
    if (!document.getElementById("myName").value || !document.getElementById("myFirstName").value){
        alert("Thank you fill in the fields")
    } else{
        document.getElementById("myDisplay").innerHTML = x;
    }
}

Blank strings are not «truthy» in JavaScript.

Reference: https://developer.mozilla.org/en-US/docs/Glossary/Truthy

answered May 16, 2019 at 15:57

Ctznkane525's user avatar

Ctznkane525Ctznkane525

7,2772 gold badges16 silver badges40 bronze badges

What about using The required Attribute? would be much easier, git it a try..

<!DOCTYPE html>
<html>
<body>

<h2>The required Attribute</h2>
<p>The required attribute specifies that an input field must be filled out before submitting the form.</p>

<form action="/action_page.php">
  Username: <input type="text" name="usrname" required>
  <input type="submit">
</form>

<p><strong>Note:</strong> The required attribute of the input tag is not supported in Internet Explorer 9 and earlier versions, or in Safari prior version 10.1.</p>

</body>
</html>

answered May 16, 2019 at 16:28

Alexandre Rodrigues's user avatar

Вот ajax

$('#btn_submit').click(function(){
                // собираем данные с формы
                var user_name    = $('#user_name').val();
                var user_email   = $('#user_email').val();
                var user_phone = $('#user_phone').val();
                var user_town = $('#user_town').val();
                // отправляем данные
                $.ajax({
                    url: "action.php", // куда отправляем
                    type: "post", // метод передачи
                    dataType: "json", // тип передачи данных
                    data: { // что отправляем
                        "user_name":    user_name,
                        "user_email":   user_email,
                        "user_phone":   user_phone,
                        "user_town":    user_town 
                    },
                    // после получения ответа сервера
                    success: function(data){
                        if($('#user_name').val() != null){
                            $('#thank').css({'display': 'block'});
                            $('#my_modal').css({'display': 'none'});
                        }
                        else{
                            alert("поле имя не не заполнено");
                        }
                    }
                });
            });

Вот php

<?php
    $msg_box = ""; // в этой переменной будем хранить сообщения формы
    $errors = array(); // контейнер для ошибок
    // проверяем корректность полей
    if($_POST['user_name'] == "")    $errors[] = "Поле 'Ваше имя' не заполнено!";
    if($_POST['user_email'] == "")   $errors[] = "Поле 'Ваш e-mail' не заполнено!";
    if($_POST['user_phone'] == "") $errors[] = "Поле 'Ваш номер телефона' не заполнено";
    if($_POST['user_town'] == "") $errors[] = "Поле 'Ваш город' не заполнено";
 
    // если форма без ошибок
    if(empty($errors)){     
        // собираем данные из формы
        $message  = "Имя пользователя: " . $_POST['user_name'] . "<br/>";
        $message .= "E-mail пользователя: " . $_POST['user_email'] . "<br/>";
        $message .= "Телефон пользователя: " . $_POST['user_phone'] . "<br/>";
        $message .= "Город пользователя: " . $_POST['user_town'] . "<br/>";
        send_mail($message); // отправим письмо
        // выведем сообщение об успехе
        $msg_box = "<span style='color: green;'>Сообщение успешно отправлено!</span>";
    }else{
        // если были ошибки, то выводим их
        $msg_box = "";
        foreach($errors as $one_error){
            $msg_box .= "<span style='color: red;'>$one_error</span><br/>";
        }
    }
 
    // делаем ответ на клиентскую часть в формате JSON
    echo json_encode(array(
        'result' => $msg_box
    ));
     
     
    // функция отправки письма
    function send_mail($message){
        // почта, на которую придет письмо
        $mail_to = "d.bagration@advise.ru"; 
        // тема письма
        $subject = "Письмо с обратной связи";
         
        // заголовок письма
        $headers= "MIME-Version: 1.0rn";
        $headers .= "Content-type: text/html; charset=utf-8rn"; // кодировка письма
        $headers .= "From: Тестовое письмо <no-reply@test.com>rn"; // от кого письмо
         
        // отправляем письмо 
        mail($mail_to, $subject, $message, $headers);
    }
     
?>

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

<?php
    if(isset($_POST['addplan'])){                                               
        if (empty($name) || empty($description) || empty($price) || empty($mbt) || empty($conc) || empty($length) || empty($unit) || empty($vip)){
            echo $design->alert('danger', 'Error', 'Пожалуйста, заполните все поля!');
        } else {
            $SQLinsert = $odb->prepare("INSERT INTO `plans` VALUES(NULL, :name, :mbt, :unit, :length, :price, :conc, :description, :vip)");
            $SQLinsert->execute(array(':name' => $name, ':mbt' => $mbt, ':unit' => $unit, ':length' => $length, ':price' => $price, ':conc' => $conc, ':description' => $description, ':vip' => $vip));
            echo $design->alert('success', 'Success', 'Тарифный план успешно создан!');

        }
    }
?>

Ни для кого не секрет, что онлайн-формы могут стать серьёзным испытанием для пользователей. Особенно когда они выглядят как список полей для ввода без каких-либо подсказок. Однако мы, как разработчики, можем значительно облегчить жизнь посетителям наших сайтов.

Используем CSS

В CSS существует четыре специальных псевдокласса, применимых к полям формы: :valid (валидное поле), :invalid (невалидное), :required (обязательное) и :optional (необязательное). Их можно использовать, чтобы добавлять некоторые — хотя и весьма ограниченные — подсказки пользователям, заполняющим форму.

Используя :valid и :invalid, мы можем показать пользователю, правильно ли заполнено поле по мере ввода.

input:valid {
  border-color: green;
}

input:invalid {
  border-color: red;
}

Стилизация псевдоклассов :valid и :invalid

Стилизация псевдоклассов : valid и : invalid

Однако с этим способом связана одна проблема: стили применяются до того, как пользователь начнёт работу с формой. Поля, обязательные для заполнения, сразу подсветятся нам как :invalid, а необязательные — как :valid. Это значит, что пользователь, даже не приступив к заполнению формы, может сразу же получить негативную обратную связь. Не очень-то хорошо.

Стилизация состояний :required и :optional сама по себе не особо полезна, поскольку эта информация обычно указывается в подписях к полям формы. Однако мы можем объединить эти состояния с псевдоклассами :valid / :invalid и стилизовать их комбинации. Например, мы хотим показывать лишь положительный результат, когда валидно обязательное к заполнению поле.

input:required:valid {
  border-color: green;
}

Стилизация по :valid и :required

Стилизация по : valid и : required

Используем JavaScript

JavaScript даёт намного больше возможностей для улучшения работы пользователей с формами. Давайте рассмотрим в качестве примера три числовых поля, у каждого из которых установлен минимум в 10, максимум в 100 и шаг в 10 единиц.

<form>
  <label>
    Number Input 1
   <input type="number" min="10" max="100" step="10">
  </label>

  <label>
    Number Input 2
   <input type="number" min="10" max="100" step="10">
  </label>

  <label>
    Number Input 3
   <input type="number" min="10" max="100" step="10">
  </label>

  <input type="submit">
</form>

Устанавливая атрибуты minmax и step, мы можем быть уверены в правильности значения только тогда, когда пользователь использует специальные контролы числового поля. Но что мешает пользователю ввести вручную некорректные данные? Вот что произойдёт, если он вставит 112 и 123 в три поля и отправит форму:

Стандартный тултип валидации

Стандартный тултип валидации

В результате всё, что получит пользователь — это сообщение об ошибке для первого поля. Кроме того, в этом сообщении будет указано лишь одно несоответствие из двух требуемых. Такое поведение можно исправить, изменяя показываемые валидатором сообщения.

Добавляем несколько сообщений об ошибках в один тултип

Валидируя поля, браузер проверяет их по определённому списку потенциальных ошибок. В каждом поле содержится специальный объект validity, включающий в себя список булевых значений, характеризующих ту или иную проверку на валидность. Например, вот такой validity-объект будет у поля, когда пользователь введёт в него 1:

input.validity = {
  valid: false // Поле валидно
  customError: false // Установленно специальное сообщение ошибки
  patternMismatch: false // Значение не удовлетворяет шаблону, установленному в атрибуте pattern
  rangeOverflow: false // Значение превосходит атрибут max
  rangeUnderflow: true // Значение меньше атрибута min
  stepMismatch: true // Значение не соответствует указаному шагу
  tooLong: false // Значение слишком длинное
  tooShort: false // Значение слишком короткое
  typeMismatch: false // Значение не соответствует указаному атрибуту type
  valueMissing: false // Отсутствует обязательное значение
};

Примечание переводчика: Слово «mismatch» переводится как «несоответствие». Поэтому в значениях patternMismatchstepMismatch и typeMismatch обратная логика: true — значение не удовлетворяет атрибуту, false — удовлетворяет.

По умолчанию браузер отобразит лишь одну ошибку. Что мы можем сделать, так это проверить все эти значения самостоятельно и, если найдутся ошибки, сохранить их. Как только мы сохраним все ошибки для одного поля, мы можем отобразить весь их список в виде специального сообщения об ошибке при помощи функции setCustomValidity().

function CustomValidation() { }

CustomValidation.prototype = {
  // Установим пустой массив сообщений об ошибках
  invalidities: [],

  // Метод, проверяющий валидность
  checkValidity: function(input) {

    var validity = input.validity;

    if (validity.patternMismatch) {
      this.addInvalidity('This is the wrong pattern for this field');
    }

    if (validity.rangeOverflow) {
      var max = getAttributeValue(input, 'max');
      this.addInvalidity('The maximum value should be ' + max);
    }

    if (validity.rangeUnderflow) {
      var min = getAttributeValue(input, 'min');
      this.addInvalidity('The minimum value should be ' + min);
    }

    if (validity.stepMismatch) {
      var step = getAttributeValue(input, 'step');
      this.addInvalidity('This number needs to be a multiple of ' + step);
    }

    // И остальные проверки валидности...
  },

  // Добавляем сообщение об ошибке в массив ошибок
  addInvalidity: function(message) {
    this.invalidities.push(message);
  },

  // Получаем общий текст сообщений об ошибках
  getInvalidities: function() {
    return this.invalidities.join('. n');
  }
};

// Добавляем обработчик клика на кнопку отправки формы
submit.addEventListener('click', function(e) {
  // Пройдёмся по всем полям
  for (var i = 0; i < inputs.length; i++) {

    var input = inputs[i];

    // Проверим валидность поля, используя встроенную в JavaScript функцию checkValidity()
    if (input.checkValidity() == false) {

      var inputCustomValidation = new CustomValidation(); // Создадим объект CustomValidation
      inputCustomValidation.checkValidity(input); // Выявим ошибки
      var customValidityMessage = inputCustomValidation.getInvalidities(); // Получим все сообщения об ошибках
      input.setCustomValidity(customValidityMessage); // Установим специальное сообщение об ошибке

    } // закончился if
  } // закончился цикл
});

Теперь при попытке отправить форму мы увидим вот это:

Отображаем несколько ошибок в одном тултипе

Стало лучше, поскольку теперь будут показываться все сообщения об ошибках, связанные с конкретным полем. Однако другая проблема всё ещё не решена: ошибки по-прежнему показываются лишь для первого поля.

Это ограничение валидации, устанавливаемое браузером. Чтобы его побороть, нам нужно пойти другим путём.

Показываем все ошибки для всех полей

Вместо того, чтобы использовать встроенный тултип, мы можем добавлять сообщения об ошибках напрямую в DOM. Таким образом, все ошибки будут выводиться рядом с соответствующим полем.

Этого можно добиться какой-то парой дополнительных строчек в нашем коде:

CustomValidation.prototype.getInvaliditiesForHTML = function() {
  return this.invalidities.join('. <br>');
}

// Добавляем обработчик клика на кнопку отправки формы
submit.addEventListener('click', function(e) {
  // Пройдёмся по всем полям
  for (var i = 0; i < inputs.length; i++) {

    var input = inputs[i];

    // Проверим валидность поля, используя встроенную в JavaScript функцию checkValidity()
    if (input.checkValidity() == false) {

      var inputCustomValidation = new CustomValidation(); // Создадим объект CustomValidation
      inputCustomValidation.checkValidity(input); // Выявим ошибки
      var customValidityMessage = inputCustomValidation.getInvalidities(); // Получим все сообщения об ошибках
      input.setCustomValidity(customValidityMessage); // Установим специальное сообщение об ошибке

      // Добавим ошибки в документ
      var customValidityMessageForHTML = inputCustomValidation.getInvaliditiesForHTML();
      input.insertAdjacentHTML('afterend', '<p class="error-message">' + customValidityMessageForHTML + '</p>')
      stopSubmit = true;

    } // закончился if
  } // закончился цикл

  if (stopSubmit) {
    e.preventDefault();
  }
});

Вот что происходит при клике на submit теперь:

Отображаем все ошибки для всех полей в DOM

Отображаем все ошибки для всех полей в DOM

Используем нестандартные проверки валидности

Иногда встроенной в браузер валидации бывает недостаточно. Нам может понадобиться, чтобы вводимые данные удовлетворяли некоторым дополнительным правилам. Например, чтобы в текстовом поле требовалось указать особые символы.

Так как мы уже проверяем все возможные ошибки вручную в нашей функции CustomValidation.prototype.checkValidity, мы можем просто-напросто добавить туда ещё несколько проверок.

CustomValidation.prototype.checkValidity = function(input) {

  // Тут идут встроенные проверки валидности

  // А тут специальные
  if (!input.value.match(/[a-z]/g)) {
    this.addInvalidity('At least 1 lowercase letter is required');
  }

  if (!input.value.match(/[A-Z]/g)) {
    this.addInvalidity('At least 1 uppercase letter is required');
  }
};

Валидация в реальном времени

Хотя текущий способ выглядит намного лучше, он тоже не без изъянов. Наихудший из недочётов заключается в том, что пользователь не сможет увидеть никаких сообщений, пока не нажмёт на кнопку отправки формы. Было бы гораздо лучше, если бы валидация поля происходила сразу же при его заполнении. Можно выделить три правила для того, чтобы с формой было удобно работать:

  1. Требования для каждого поля чётко видны до того, как пользователь начал печатать.
  2. Как только пользователь начинает вводить данные, соблюдая требования, он сразу видит индикатор успешного заполнения поля или подсказки, если есть ошибки.
  3. Нужно отображать сообщения об ошибках таким образом, чтобы пользователь не мог отправить некорректно заполненную форму.

Пример валидации в реально времени

Пример валидации в реально времени

Если вы хотите попробовать свои силы (и даже сделать получше), вы можете воспользоваться вот этим шаблоном.


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Пример того что у нас получится можно посмотреть в примере ниже. В примере задействована и валидация на правильный ввод почты — e-mail. Ниже я покажу два варианта скриптов с проверкой правильности почты и без нее.

Пример

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

Для осуществления задуманного, нам нужно для начала создать саму форму. У Вас она уже может быть, если вы захотите данный материал внедрить в нее, нужно будет его адаптировать под вашу форму. Я же покажу все на своем примере. Моя форма ничего не будет отправлять, в этой статье нет обработчика для отправки писем, чтобы не усложнять материал. Обработчик отправки писем, это другая история. Для начала сам HTML код формы.

<form id="file_form" action="">
<div id="messenger"></div>
<input type="text" name="name_f" id="name_f"  placeholder="Ваше имя" autocomplete="on" class="in_pl">
<input type="email" name="contact_f" id="contact_f" placeholder="Ваш E-mail" autocomplete="on" class="in_pl">
<textarea name="mssg_f" id="mssg_f" rows="5" placeholder="Ваше сообщение" class="in_pl"></textarea>
<input value="Отправить" type="submit" name="submit"  id="sub_f" onclick="frmotpr();" />
</form>

По коду видно, что наша форма состоит из трех полей — имя, почта и тестовое поле. Есть еще несколько важных моментов, которые понадобятся в любом случаи для правильной работы скрипта. Давайте разберем по-порядку.

  • id=»file_form» — айди для нашей формы. ID — обязателен, он будет тоже использоваться в скрипте.
  • <div id=»messenger»></div> — обязательный блок. Это контейнер для вывода сообщений об ошибке от скрипта. данный блок можно разместить и вне формы. Задать ему любые стили. В примере, это тот красный текст, что сообщает об незаполненном поле.
  • onclick=»frmotpr();» — событие, которое будет запускать функцию из нашего скрипта, при нажатии на кнопку. Данное событие добавлено к кнопке ОТПРАВИТЬ. Предпоследняя строка в коде.
  • Всем полям тоже присвоены ID и классы. Они тоже понадобятся для нашего скрипта валидации. ID для поля с e-mail особенно важен для нашего будущего скрипта, что будет проверять правильность введенного e-mail.

Теперь, чтобы придать нормальный внешний вид нашей форме, добавим немного CSS стилей.Если вы будете использовать их на своем сайте, то добавьте их в свой файл стилей.

#file_form{
width:300px;
background:#fff;
padding:15px;
margin:3px;
-webkit-border-radius:25px;
-moz-border-radius:25px;
border-radius:25px;
box-shadow:0 0 10px rgba(0,0,0,.1);
border:1px solid #36c;
}
.in_pl{
width:90%;
margin-bottom:15px;
padding:10px 15px;
border-radius:25px;
border:none;
box-shadow:0 0 5px rgba(0,0,0,.2) inset;
background:#fff;
}
.in_pl:focus{
background:#fff;
}
#sub_f{
padding:5px 15px;
border:none;
border-radius:25px;
box-shadow:0 0 2px 1px rgba(0,0,0,.2);
background:#36c;
color:#fff;
cursor:pointer;
}
#sub_f:hover{background:#333;}
.fl_fr{
width:100%;
text-align:center;
font-size:15px;
color:#333;
cursor: pointer;
border:none;
margin-bottom:10px;
}
#messenger{
text-align:center;
display:none;
color:#f00;
margin:15px 0;
}
.notvalid{background:rgba(255,0,0,.2);}

Данный стили задают параметры для самой формы, полей, кнопки. Расписывать все строчки, каждая для чего — не буду, для этого есть учебники по CSS. Распишу лишь два самых основных.

  • #messenger — это стили для того самого блока с выводом сообщений. Главный параметр для этого класса — это display:none. Тоесть мы изначально скрываем блок.
  • .notvalid — это стили для класса, который будет присваиваться нашим скриптом к тому полю, что не заполнено или заполнено не корректно. Об этом классе я еще раз упомяну ниже.

Теперь, когда у нас есть готовая форма или вы свою форму настроили соответственно моим указаниям, добавили ей айди, мои или свои, нужный блок и событие кнопки, можем приступить к подключению скрипта.

Так как наш скрипт работает с помощью jQuery, нужно чтобы была подключена библиотека jQuery. Если она не подключена ранее, сделайте это, добавив вот такую строку:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

Куда и как правильнее добавлять библиотеку, вы можете прочитать в статье — Как и где подключить скрипт?.

После библиотеки, не перед ней, а именно после нужно уже подключать, наш долгожданный скрипт валидации формы. как и писал ранее, первым вариантом будет сначала скрипт проверки поле на заполнение, без проверки правильности введенной почты. Сам скрипт имеет следующий вид:

<script>
$(function frmotpr(){
		var field = new Array("name_f", "contact_f", "mssg_f");
		$("#file_form").submit(function() {
			var error=0;
			$("#file_form").find(":input").each(function() {
				for(var i=0;i<field.length;i++){
					if($(this).attr("name")==field[i]){
						if(!$(this).val()){
							$(this).addClass('notvalid');
							error=1;	
						}
						else{
							$(this).removeClass('notvalid');
						}
					}						
				}				
		   })
			if(error==0){
			return true;
			}else{ var err_text = "";
			if(error==1)  err_text="Не все обязательные поля заполнены!";
			$("#messenger").html(err_text);	
			$("#messenger").fadeIn("slow");	
			return false;
			}
		})
	});
</script>

Давайте рассмотрим основные элементы нашей функции из скрипта.

  • frmotpr() — вторая строка, название функции. Это название должно совпадать с называнием внутри нашего события onclick, что мы добавили кнопке ОТПРАВИТЬ.
  • («name_f», «contact_f», «mssg_f») — в третей строке в кавычках, через запятую мы указываем ID наших полей ввода, что обязательны к заполнению. Я ввел все три. Вы можете ограничится одним или двумя или десятком, если у вас будет много полей.
  • $(«#file_form»).submit — в четвертой строке указываем ID нашей формы и то что функция будет срабатывать когда мы нажмем на кнопку submit этой самой формы.
  • error=0; — код ошибки, а вернее ее отсутствие.
  • $(«#file_form»).find(«:input») — проверяем все поля ввода input нашей формы на заполнение.
  • Далее идет проверка на заполненность в результате чего срабатывает условие для вывода сообщения об ошибке.
  • $(this).addClass(«notvalid»); — в итоге, если поле не заполнено то ему присваивается класс — notvalid. Для которого мы присвоили в стилях определенные параметры, а точнее неправильно заполненное поле, будет становиться красным.
  • $(this).removeClass(«notvalid»); — если поле правильно заполнено — удаляем класс notvalid.
  • if(error==0){ — далее мы проверяем что у нас вышло в итоге. и если код ошибки 0 — то есть ошибки отсутствуют, мы переходим к следующему пункту:
  • return true; — разрешаем сработать нашей форме и отправить данные. Например через action. Так же в это место вы можете добавлять AJAX функцию для отправки письма или ще что-то что нужно выполнить если фсе поля заполнены. тут ограничивается вашей фантазией.
  • }else{ var err_text = «»; -далее условие, что в противном случаи, если есть ошибки, мы создаем переменную err_text и задаем ей пока что пустое значение.
  • if(error==1) err_text=»Не все обязательные поля заполнены!»; — Если код ошибки 1, то есть одно или несколько полей не заполнены, мы присваиваем переменной err_text — текст Не все обязательные поля заполнены!.
  • $(«#messenger»).html(err_text); — наш текст ошибки вставляем в тот самый блок для ошибок — messenger.
  • («#messenger»).fadeIn(«slow»); — далее показываем с легкой анимацией наш блок, который мы стилями выше скрыли. Если было пустое поле вы увидите после нажатия на кнопку сообщение об ошибке.
  • return false; — запрещаем отправку формы и возвращаемся к началу. перед этой строкой можете тоже добавить какие-то задачи или функции, которые хотите.

Вот и весь скрипт по сути. Если вы немного разбираетесь в JS, то все понятно и доступно. Если Вы правильно его адаптировали под свою форму и свои поля со стилями, то результат не должен заставить себя ждать и валидация начнет работать.

Теперь давайте рассмотрим версию скрипта, которая помимо проверки на заполнение, будет еще и проверять корректно ли введен e-mail.

Сам скрипт очень похож, добавлена просто еще функция и пару новых строк:

<script>
$(function frmotpr(){
		var field = new Array("name_f", "contact_f", "mssg_f");
		$("#file_form").submit(function() {
			var error=0;
			$("#file_form").find(":input").each(function() {
				for(var i=0;i<field.length;i++){
					if($(this).attr("name")==field[i]){
						if(!$(this).val()){
							$(this).addClass('notvalid');
							error=1;	
						}
						else{
							$(this).removeClass('notvalid');
						}
					}						
				}				
		   })
			var email = $("#contact_f").val();
		   	if(!isValidEmailAddress(email)){
				error=2;
				$("#contact_f").addClass('notvalid');
			}
			if(error==0){
			return true;
			}else{
			var err_text = "";
			if(error==1)  err_text="Не все обязательные поля заполнены!";
			if(error==2)  err_text="Введен не корректный e-mail!";
			$("#messenger").html(err_text);	
			$("#messenger").fadeIn("slow");	
			return false;
			}
		})
	});
	function isValidEmailAddress(emailAddress) {
		var pattern = new RegExp(/^(("[w-s]+")|([w-]+(?:.[w-]+)*)|("[w-s]+")([w-]+(?:.[w-]+)*))(@((?:[w-]+.)*w[w-]{0,66}).([a-z]{2,6}(?:.[a-z]{2})?)$)|(@[?((25[0-5].|2[0-4][0-9].|1[0-9]{2}.|[0-9]{1,2}.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}).){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})]?$)/i);
		return pattern.test(emailAddress);
    }
</script>

Собственно, рассмотрим новые строки

  • function isValidEmailAddress(emailAddress) — последние 4 строки скрипта это функция валидации для e-mail. Особо разбирать там нечего она нужна для проверки и участвует в условиях из основной функции. Я ее упоминаю в самом начале, дабы потом ссылаясь на нее было понятно.
  • var email = $(«#contact_f»).val(); — эти строки выше. Создаем переменную email и указываем айди нашего поля для почты — contact_f.
  • if(!isValidEmailAddress(email)){ — создаем условие, что если наша функция по проверке выявила ошибку, присваиваем ошибке новый код.
  • error=2; — присваиваем ошибке код 2.
  • $(«#contact_f»).addClass(«notvalid»); — полю e-mail присваиваем наш класс ошибки notvalid.
  • if(error==2) err_text=»Введен не корректный e-mail!»; — эта строка добавилась в то место, где мы присваиваем переменной err_text — текст. Данная строка указывает, что если код ошибки 2, то есть некорректный e-mail, выведется текст — Введен не корректный e-mail!

Все остальное же, осталось без изменений. Сравните скрипты и разберетесь где и что отличается. Я постарался подробно расписать, думаю проблем не должно возникнуть. Мой пример из начала статьи как раз основан уже на втором скрипте.

Как и писал ранее, адаптируйте скрипт под свою форму, указывайте правильно айди формы и полей, не забудьте про событие у кнопки отправления формы, блок дла вывода сообщения и стили для этого блока и поля с ошибкой. Если постараетесь у вас все получится. Многовато текста получилось, так что будем заканчивать.

На этом все, спасибо за внимание. 🙂

Понравилась статья? Поделить с друзьями:
  • Ошибка пользователя при вводе информации это
  • Ошибка пользователь не найден в вк что делать
  • Ошибка пользователя не зарегистрирован в есиа
  • Ошибка пользователь не зарегистрирован в системе
  • Ошибка пользователя информационной системы является преднамеренной угрозой верно