Рубрики
Без рубрики

Основная проверка формы в JavaScript

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

Автор оригинала: FreeCodeCamp Community Member.

В прошлом проверка формы будет происходить на сервере, после того, как человек уже введен во всей их информации и нажал кнопку отправки.

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

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

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

Вот код HTML, который мы будем использовать в следующих примерах:



  Form Validation
  


  
Username
Email Address

Основная проверка

Этот тип проверки включает в себя проверку всех обязательных полей и убедившись, что они правильно заполнены.

Вот основной пример функции проверить Это отображает предупреждение, если имя пользователя и адрес электронной почты пустые, в противном случае возвращается:

const submitBtn = document.getElementById('submit-btn');

const validate = (e) => {
  e.preventDefault();
  const username = document.getElementById('username');
  const emailAddress = document.getElementById('email-address');
  if (username.value === "") {
    alert("Please enter your username.");
    username.focus();
    return false;
  }
  if (emailAddress.value === "") {
    alert("Please enter your email address.");
    emailAddress.focus();
    return false;
  }
  
  return true;
}

submitBtn.addEventListener('click', validate);

Но что, если кто-то входит в случайном тексте как свой адрес электронной почты? В настоящее время проверить Функция все равно вернется правдой. Как вы можете себе представить, отправка плохих данных на сервер может привести к проблемам.

Вот где приходит проверка формата данных.

Валидация формата данных

Этот тип проверки на самом деле смотрит на значения в форме и проверяет, что они верны.

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

Тем не менее, есть несколько ключевых факторов, которые распространены во всех действительных адресах электронной почты:

  • Адрес должен содержать один @ и хотя бы одну точку (.)
  • Персонаж @ не может быть первым символом в адресе
  • . должен прийти хотя бы один символ после @ символа @

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

const emailIsValid = email => {
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}

emailIsValid('free@code@camp.org') // false
emailIsValid('quincy@freecodecamp.org') // true

Добавлено в код из последнего примера, он будет выглядеть так:

const submitBtn = document.getElementById('submit-btn');

const validate = (e) => {
  e.preventDefault();
  const username = document.getElementById('username');
  const emailAddress = document.getElementById('email-address');
  if (username.value === "") {
    alert("Please enter your username.");
    username.focus();
    return false;
  }
    
  if (emailAddress.value === "") {
    alert("Please enter your email address.");
    emailAddress.focus();
    return false;
  }

  if (!emailIsValid(emailAddress.value)) {
    alert("Please enter a valid email address.");
    emailAddress.focus();
    return false;
  }
  
  return true; // Can submit the form data to the server
}

const emailIsValid = email => {
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}

submitBtn.addEventListener('click', validate);

HTML5 формы ограничения

Некоторые из обычно используются ограничения HTML5 для являются Тип атрибут (например, тип = "пароль" ), Maxlength , Требуется и отключено Отказ

Менее обычно используемое ограничение – шаблон атрибут, который принимает регулярное выражение JavaScript.

Больше информации