Javascript для проверки данных формы не работает - PullRequest
0 голосов
/ 21 февраля 2012

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

<script type="text/javascript">
            function checkStuff() {
                // By default, we plan to submit the form.
                var formOkay = 1;

                // Check to see if field_1 has a value.  If not, we note that by changing our variable.
                if(document.getElementById('requestorfirstname').value == '')
                    formOkay = 0;

                // Let the user know something is wrong somehow.  An alert is easiest.
                alert('Requestor Name Required!');

                // If you return true the form will submit.  If you return false it will not.
                if(formOkay == 1) {
                    return true;
                } else {
                    return false;
                }
            }
        </script>

Теперь вот часть HTML-формы, которую он проверяет на отправке.

<input type="text" name="requestorfirstname" />

Спасибо за помощь!

Ответы [ 3 ]

4 голосов
/ 21 февраля 2012

document.getElementById ищет элементы по идентификатору.Ваше поле не имеет идентификатора, оно имеет ИМЯ.

2 голосов
/ 21 февраля 2012

Атрибут name в элементе HTML НЕ совпадает с атрибутом id. У вас нет идентификатора в поле ввода, поэтому getElementById не может его найти. Измените элемент на:

<input type="text" name="requestorfirstname" id="requestorfirstname" />
                                            ^^^^^^^^^^^^^^^^^^^^^^^^ - add this
2 голосов
/ 21 февраля 2012

document.getElementById выбирает элемент с помощью id, а не name.

Некоторые способы решения проблемы:

  • Добавить id="requestorfirstname" к элементу ввода.
  • Использовать document.getElementsByName('requestorfirstname')[0]. getElementsByName возвращает список, следовательно [0].
  • Используйте метод document.querySelector('[name="requestorfirstname"]').
  • Получите ссылку на форму и получите доступ к элементу, используя коллекцию .elements.
    Например, если ваша страница имеет только одну форму:

    document.forms[0].elements['requestorfirstname']
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...