用于检查表单数据的Javascript不起作用


Javascript to check for form data does not work

我有以下代码来检查表单数据,但我不明白为什么它不起作用。

<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" />

谢谢你的帮助!

document.getElementById按ID查找元素。您的字段没有ID,而是有NAME。

document.getElementById通过id而不是通过name选择元素。

一些解决问题的方法:

  • id="requestorfirstname"添加到输入元素
  • 使用document.getElementsByName('requestorfirstname')[0]getElementsByName返回一个列表,因此返回[0]
  • 使用document.querySelector('[name="requestorfirstname"]')方法
  • 获取对该表单的引用,并使用.elements集合访问该元素
    例如,如果您的页面只有一个表单:

    document.forms[0].elements['requestorfirstname']
    
HTML元素上的name属性与id属性不同。您的输入字段上没有id,因此getElementById无法找到它。将元素更改为:
<input type="text" name="requestorfirstname" id="requestorfirstname" />
                                            ^^^^^^^^^^^^^^^^^^^^^^^^ - add this