Проверка Javascript для HTML-формы не работает - PullRequest
0 голосов
/ 15 июня 2019

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

Я пытался перекомпилировать валидатор и форму заказа полностью несколько раз. Я просмотрел код несколько раз безрезультатно.

function validateForm() {
  var x = document.forms["myForm"]["fname"].value;
  if (x == " ") {
    alert("Name must be filled out");
    return false;
  }
  var y = document.forms["myForm"]["mname"].value;
  if (y == " ") {
    alert("middle name must be filled out");
    return false;
  }
}
<script src="Validator.js"></script>
<form name="myForm" onsubmit="return validateForm()" action="OrderConfirmed.htm" method="post">
  Name: <input type="text" name="fname" value=" "> Middle Name: <input type="text" name="mname" value=" ">
  <input type="submit" value="Submit">
</form>

Ожидаемый результат состоит в том, что когда форма отправлена, но поле пусто, должно появиться сообщение (диалоговое окно), сообщающее пользователю, какой ввод не заполнен.

1 Ответ

1 голос
/ 15 июня 2019

Вы можете решить это, используя 'event.preventDefault'.(Но ваш код тоже должен работать ...) Вот пример кода:

<html>
<head>
    </head>
    <body>
	<form name="myForm" onsubmit="validateForm(event)">
	    Name: <input type="text" name="fname" value=" ">
	    Middle Name: <input type="text" name="mname" value=" ">
	    <input type="submit" value="Submit">
	</form>
	<script type="text/javascript">
	    function validateForm(e) {
                var x = document.forms["myForm"]["fname"].value;
                if (x == " ") {
                    e.preventDefault();
                    alert("Name must be filled out");
                    return false;
                }
                var y = document.forms["myForm"]["mname"].value;
                if (y == " ") {
                    e.preventDefault();
                    alert("middle name must be filled out");
                    return false;
                }
            }
        </script>
     </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...