Проверка формы игнорирует проверку для ввода имени - PullRequest
0 голосов
/ 28 февраля 2019

Я делаю форму для проекта, и форма должна быть проверена.Проверка работает нормально для электронной почты и организации, но, похоже, игнорирует проверку имени.Может кто-нибудь помочь, пожалуйста?

var name = document.forms["download__form"]["name"],
email = document.forms["download__form"]["email"],
institution = document.forms["download__form"]["institution"];

function validation() {
  if(name.value == "") {
    window.alert("Name must be filled!");
    return false;
  }

  if(email.value == "") {
    window.alert("Name must be filled!");
    return false;
  }

  if(email.value.indexOf("@", 0) < 0) {
    window.alert("Name must be filled!");
    return false;
  }

  if(email.value.indexOf(".", 0) < 0) {
    window.alert("Name must be filled!");
    return false;
  }

  if(institution.value == "") {
    window.alert("Name must be filled!");
    return false;
  }
}
<form class="form__fill" name="download__form" onsubmit="return validation()">
  <input type="text" class="form__input" name="name" placeholder="NAME*" />
  <input type="text" class="form__input" name="email" placeholder="EMAIL*" />
  <input type="text" class="form__input" name="institution" placeholder="INSTITUTION/ORGANIZATION*" />
  <p>*Must be filled</p>
  <input type="submit" name="download" class="form__button" id="form__button" value="Download.PDF" />
</form>

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019
<form class="form__fill" name="download__form" onsubmit="return validation()">
  <input type="text" class="form__input" name="name" placeholder="NAME*" />
  <input type="text" class="form__input" name="email" placeholder="EMAIL*" />
  <input type="text" class="form__input" name="institution" placeholder="INSTITUTION/ORGANIZATION*" />
  <p>*Must be filled</p>
  <input type="submit" name="download" class="form__button" id="form__button" value="Download.PDF" />
</form>

<script type="text/javascript">
// Javascript
var name = document.forms["download__form"]["name"],
email = document.forms["download__form"]["email"],
institution = document.forms["download__form"]["institution"];

function validation() {
  if(name.value == "") {
    window.alert("Name must be filled!");
    return false;
  }

  if(email.value == "") {
    window.alert("email must be filled!");
    return false;
  }

  if(email.value.indexOf("@", 0) < 0) {
    window.alert("email must be valid");
    return false;
  }

  if(email.value.indexOf(".", 0) < 0) {
    window.alert("email must be valid");
    return false;
  }

  if(institution.value == "") {
    window.alert("institution must be filled!");
    return false;
  }
}
</script>

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

0 голосов
/ 28 февраля 2019

Проблема здесь в том, что ваш элемент управления именем не имеет значения, а также не инициализирован и, следовательно, возвращает undefined, когда значение не введено, если оно введено.Вам нужно поставить чек, как

if(typeof name.value == "undefined" || name.value =="")

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

Надеюсь, это поможет,

0 голосов
/ 28 февраля 2019

Работает нормально.Вы поместили все предупреждающие сообщения как Имя должно быть заполнено .Поэтому, если какое-либо поле выдает ошибку, оно оповещает Имя должно быть заполнено .Просто измените предупреждающее сообщение, относящееся к конкретным полям, и оно не выдаст ненужную ошибку для поля имени

var name = document.forms["download__form"]["name"],
email = document.forms["download__form"]["email"],
institution = document.forms["download__form"]["institution"];

function validation() {
  if(name.value == "") {
    window.alert("Name must be filled!");
    return false;
  }

  if(email.value == "") {
    window.alert("Email must be filled!");
    return false;
  }

  if(email.value.indexOf("@", 0) < 0) {
    window.alert("Email format is not correct!");
    return false;
  }

  if(email.value.indexOf(".", 0) < 0) {
    window.alert("Email format is not correct!");
    return false;
  }

  if(institution.value == "") {
    window.alert("Institution must be filled!");
    return false;
  }
}
<form class="form__fill" name="download__form" onsubmit="return validation()">
  <input type="text" class="form__input" name="name" placeholder="NAME*" />
  <input type="text" class="form__input" name="email" placeholder="EMAIL*" />
  <input type="text" class="form__input" name="institution" placeholder="INSTITUTION/ORGANIZATION*" />
  <p>*Must be filled</p>
  <input type="submit" name="download" class="form__button" id="form__button" value="Download.PDF" />
</form>
...