Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.05.2015, 08:04
Новичок на форуме
Отправить личное сообщение для Ultor Посмотреть профиль Найти все сообщения от Ultor
 
Регистрация: 24.01.2012
Сообщений: 9

Скрипт проверки полей почтовой формы
Помогите пожалуйста! Что и куда нужно вставить, чтобы происходила проверка полей формы в следующем скрипте (чтобы пустые поля нельзя было отправить):

document.getElementById('feedback-form1').onsubmit = function(){
  var http = new XMLHttpRequest();
  http.open("POST", "contact1.php", true);
  http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  http.send("nameFF1=" + this.nameFF1.value + "&contactFF1=" + this.contactFF1.value);
  http.onreadystatechange = function() {
    if (http.readyState == 4 && http.status == 200) {
      swal(http.responseText + ', Ваша заявка принята!', 'Мы свяжемся с Вами в ближайшее время.\nБлагодарим за обращение!', 'success');
    }
  }
  http.onerror = function() {
    swal('Ошибка!', 'Извините, данные не были переданы', 'error');
  }
  return false;
}


Пробовал добавлять this.contactFF1.value !== "" && this.nameFF1.value !== "" , но, очевидно, что в http.onreadystatechange оно не может работать...

Последний раз редактировалось Ultor, 15.05.2015 в 08:06.
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2015, 08:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<input required /> и браузер сам не разрешит отправить форму с пустым полем. А так как обмен с сервером асинхронный, и сервер обязан проверять данные не зависимо от того проверялось ли на клиенте, то старые браузеры не поддерживающие required получат от сервера ошибку.
Ответить с цитированием
  #3 (permalink)  
Старый 15.05.2015, 09:01
Новичок на форуме
Отправить личное сообщение для Ultor Посмотреть профиль Найти все сообщения от Ultor
 
Регистрация: 24.01.2012
Сообщений: 9

laimas,
Если было бы всё так просто... Но сайт у меня написан на xhtml, поэтому html 5 значения не срабатывают.
Ответить с цитированием
  #4 (permalink)  
Старый 15.05.2015, 09:12
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от Ultor
Пробовал добавлять this.contactFF1.value !== "" && this.nameFF1.value !== "" , но, очевидно, что в http.onreadystatechange оно не может работать...
Так а причем здесь onreadystatechange? Пиши в обработчике onsubmit условие проверки заполненности полей. Что-нибудь типо:
if (this.contactFF1.value === "" || this.nameFF1.value === "") {
  return false;
}

И вставляй это в начало обработчика до отправки аякс запроса.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка текста из других полей формы duostark Общие вопросы Javascript 2 05.02.2014 18:29
Результаты проверки сервером формы ekkl jQuery 3 30.01.2010 14:29
Помогите написать скрипт валидации формы RayOfLight Общие вопросы Javascript 2 27.07.2009 11:58
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14