Как выдать предупреждающее сообщение после завершения всей проверки формы?

#javascript #html #forms #validation #alert

#javascript #HTML #формы #проверка #предупреждение

Вопрос:

После нажатия кнопки отправки для моей формы выполняется функция formvalidtion() из файла javascript, приведенного ниже.

 function formValidation() {
    var fname = document.getElementById('firstName').value;
    var lname = document.getElementById('lastName').value;
    var pnumber = document.getElementById('phoneNumber').value;
    var email = document.getElementById('e-mail').value;

    return FirstName(fname) amp;amp; LastName(lname) amp;amp; PhoneNumber(pnumber) amp;amp; Email(email) amp;amp; thankyou();
  return false;
}
 

Пример индивидуальной проверки.

 function FirstName(fname) {
  var message = document.getElementsByClassName("error-message");
  var letters = /^[A-Za-z] $/;
  if ( fname =="" || fname.match(letters)) {
    text="";
    message[0].innerHTML = text;
    return true;
  }
  
  else {
    text="First name should contain only letters";
    message[0].innerHTML = text;
    return false;
  }
}
 

Как указано в функции formvalidtion() У меня есть функция thankyou(), ссылка на которую приведена ниже.

 function thankyou() {
    if (formValidation() === true){
        alert("Thank you for subscribing!");
    }
}
 

Остальные функции проверки работают не так, предупреждение о подтверждении не появляется. ТИА!

Ответ №1:

Вы отправляете свою функцию в рекурсивный шаблон без базового варианта, позволяя двум функциям вызывать себя (FormValidation и thankYou). Вы можете исправить это, удалив условие в функции благодарности

 function thankyou() {
    alert("Thank you for subscribing!");
}
 

Комментарии:

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

2. Вы его тестировали? Он должен предупреждать только в том случае, если все проверки выполняются успешно

3. Да, выполняется успешно, единственная ошибка заключается в том, что если форма пуста, и вы отправляете ее, выдает предупреждение.

4. Тогда проблема связана с вашей логикой проверки.. Например, в вашей логике Fname я вижу, что для пустой строки вы возвращаете true

5. Глупый я не учел пустые поля, спасибо, Кевин, благослови тебя, приятель!