#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. Глупый я не учел пустые поля, спасибо, Кевин, благослови тебя, приятель!