JavaScript проверка формы пропускает / возвращает "true" - PullRequest
0 голосов
/ 16 января 2020

Я создал забытую форму имени пользователя / пароля с некоторой проверкой basi c JavaScript, которая работала до того момента, когда я встроил ее в разработанную страницу (т.е. первая версия была просто базовым c дизайном без острых ощущений) , Как правило, форму не следует отправлять до тех пор, пока не будут выполнены 3 проверки (проверьте введенный адрес электронной почты, проверьте правильность формата адреса электронной почты и проверьте правильность DOB). По какой-то причине, хотя он запускает одну или все проверки достоверности, так как по крайней мере одно из красных текстовых сообщений об ошибках появляется при нажатии кнопки «Отправить», оно все равно помещает его на страницу PHP, указанную в действии формы сразу после этого. сообщения об ошибках становятся видимыми.

Я знаю, что мог бы, вероятно, изобрести это другим способом JavaScript (мои навыки здесь основны c!), но я добился успеха с более сложной формой регистрации в этом тот же тип пути. Пожалуйста, кто-нибудь может дать мне знать, какое действие игнорирует JavaScript и по существу возвращает "true"? Полный источник страницы следует.

function validateEmail(str) {
  var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return re.test(str.toLowerCase());
}

function checkForm(form) {
  if (form.email.value == "") {
    var emailerror1 = "<br><i class='fa fa-exclamation-triangle'></i> Please enter an email address<br>";
  } else {
    var emailerror1 = "";
    var test1 = 1;
  }
  document.getElementById("error1").innerHTML = emailerror1;

  if (form.email.value != "" && !validateEmail(form.email.value)) {
    var emailerror2 = "<br><i class='fa fa-exclamation-triangle'></i> Please check the format of your email address<br>";
  } else {
    var emailerror2 = "";
    var test2 = 1;
  }
  document.getElementById("error2").innerHTML = emailerror2;

  if (form.day.value == "" || form.month.value == "" || form.year.value == "") {
    var doberror = "<br><i class='fa fa-exclamation-triangle'></i> Please enter your date of birth<br><br>";
  } else if (form.day.value == "30" && form.month.value == "02") {
    var doberror = "<br><i class='fa fa-exclamation-triangle'></i> Please check your date of birth<br><br>";
  } else if (form.day.value == "31" && form.month.value == "02") {
    var doberror = "<br><i class='fa fa-exclamation-triangle'></i> Please check your date of birth<br><br>";
  } else if (form.day.value == "31" && form.month.value == "04") {
    var doberror = "<br><i class='fa fa-exclamation-triangle'></i> Please check your date of birth<br><br>";
  } else if (form.day.value == "31" && form.month.value == "06") {
    var doberror = "<br><i class='fa fa-exclamation-triangle'></i> Please check your date of birth<br><br>";
  } else if (form.day.value == "31" && form.month.value == "09") {
    var doberror = "<br><i class='fa fa-exclamation-triangle'></i> Please check your date of birth<br><br>";
  } else if (form.day.value == "31" && form.month.value == "11") {
    var doberror = "<br><i class='fa fa-exclamation-triangle'></i> Please check your date of birth<br><br>";
  } else {
    var doberror = "";
    var test3 = 1;
  }
  
  document.getElementById("error3").innerHTML = doberror;

  if (test1 === 1 && test2 === 1 && test3 === 1) {
    return true;
  } else {
    return false;
  }

}
image
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...