Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';价值';形式上的未定义错误_Javascript_Forms - Fatal编程技术网

Javascript 无法读取属性';价值';形式上的未定义错误

Javascript 无法读取属性';价值';形式上的未定义错误,javascript,forms,Javascript,Forms,我有一个基于表单模板的注册表单。它工作正常,但我还需要它添加名字、姓氏和电话号码,所以我将其更改为: <form method="post" name="registration_form" action="<?php echo esc_url($_SERVER['PHP_SELF']); ?>"> First Name: <input type='text' name='firstname' id='firstname' /

我有一个基于表单模板的注册表单。它工作正常,但我还需要它添加名字、姓氏和电话号码,所以我将其更改为:

        <form method="post" name="registration_form" action="<?php echo esc_url($_SERVER['PHP_SELF']); ?>">
            First Name: <input type='text' name='firstname' id='firstname' /><br>
            Last Name: <input type='text' name='lastname' id='lastname' /><br>
            Phone: <input type='tel' name='phone' id='phone' /><br>
            Username: <input type='text' name='username' id='username' /><br>
            Email: <input type="text" name="email" id="email" /><br>
            Password: <input type="password"
                             name="password" 
                             id="password"/><br>
            Confirm password: <input type="password" 
                                     name="confirmpwd" 
                                     id="confirmpwd" /><br>
            <input type="button" 
                   value="Register" 
                   onclick="return regformhash(this.form,
                                   this.form.firstname,
                                   this.form.lastname,
                                   this.form.phone,
                                   this.form.username,
                                   this.form.email,
                                   this.form.password,
                                   this.form.confirmpwd);" /> 
        </form>

我现在在表单页面和与“confirmpwd”字段关联的Javascript页面上都出现了“无法读取未定义属性‘value’”错误。该字段不是空的,并且名称与原始模板没有更改,唯一更改的是将姓名和电话添加到表单中。

您忘记了uid参数。

两件事,您的函数不匹配。首先,您将传入8个参数,其中不包括
uid
的值,该函数需要9个输入。这些值最终不会像您期望的那样排列,因此,当函数运行时,
confirmpwd
是未定义的,当您尝试获取未定义的属性时,您会得到一个
“无法读取未定义的属性‘值’”
错误

由于
uid
不在表单中,而且您也没有验证
username
,因此我假设您正在尝试验证
username
,并相应地更新了您的函数

函数regformhash(表单、名字、姓氏、电话、用户名、电子邮件、密码、confirmpwd){
//检查每个字段是否有一个值
如果(username.value=''firstname.value=''lastname.value=''phone.value=''email.value=''password.value=''confirmpwd.value=''){
警报(“您必须提供所有请求的详细信息。请重试”);
}
返回false;
}

传递给
regformhash
的参数数量与参数数量不相等
this.form.firstname
在函数体中变为
uid
,等等。不相关:当您完成此操作后,您可能需要对照
='
检查修剪后的值,例如
|lastname.value.trim()='''.|
等(以避免字段仅填充空格)@StephenP,我将在字段工作后添加适当的验证。这也是我的想法,但在我基于此的模板表单中,表单中没有声明uid参数,但它在Javascript文件中。这是原始的.js文件。请记住,这个表单确实有用,我测试了它,它工作得很好,当我添加3个附加字段时,它就停止了。哦,还有,那是.js文件中的错误部分,我现在正在更新它。好的,实际上我只是在.js文件中删除了uid参数,因为它似乎不需要。一开始我很困惑,因为它在原始框架中,当我添加的3个字段不在那里时它确实起作用了。很酷,我以为uid参数应该在那里,因为它在我使用的原始框架中,但我把它直接拿出来,稍加调整,它就起作用了。
function regformhash(form, uid, firstname, lastname, phone, username, email, password, confirmpwd) {
    // Check each field has a value
    if (uid.value == '' || firstname.value == '' || lastname.value == '' || phone.value == '' || email.value == '' || password.value == '' || confirmpwd.value == '') {
        alert('You must provide all the requested details. Please try again');
        return false;
    }