突然之间,我在 JavaScript 中遇到了未定义的错误。
Error: TypeError: document.userForm.surname is undefined
当我尝试调用表单字段的值时出现错误。有趣的是,一些字段返回一种字符串类型,而另一些则返回未定义,但是它们都被声明为相同的并且具有相同的输入类型等......我在这一点上完全一无所知并寻求知识堆栈溢出神来帮助我。
以下是页面的一部分,向您显示值已成功从数据库返回并填写表单上的字段:
这是上面显示的表单部分,也是我调用 javascript 的按钮:
<form class=\"gideonform\" name=\"userForm\">
<tr>
<td id=\"right\">Password: </td>
<td id=\"left\"><input size=\"50\" maxlength=\"50\" type=\"password\" name=\"password\" value=".$dbuserpassword."></input></td>
</tr>
<tr>
<td id=\"right\"></td>
<td id=\"left\"></td>
</tr>
<tr>
<td id=\"right\">Title: </td>
<td id=\"left\"><input size=\"50\" maxlength=\"5\" type=\"text\" name=\"title\" value=\"".$dbusertitle."\"></input></td>
</tr>
<tr>
<td id=\"right\"></td>
<td id=\"left\"></td>
</tr>
<tr>
<td id=\"right\">Name: </td>
<td id=\"left\"><input size=\"50\" maxlength=\"50\" type=\"text\" name=\"name\" value=\"".$dbusername."\"></input></td>
</tr>
<tr>
<td id=\"right\"></td>
<td id=\"left\"></td>
</tr>
<tr>
<td id=\"right\">Surname: </td>
<td id=\"left\"><input size=\"50\" maxlength=\"50\" type=\"text\" name=\"surname\" value=\"".$dbusersurname."\"></input></td>
</tr>
<tr>
<td id=\"right\"></td>
<td id=\"left\"></td>
</tr>
<tr>
<td id=\"right\">Date of Birth: </td>
<td id=\"left\"><input size=\"50\" maxlength=\"50\" type=\"text\" name=\"dateofbirth\" id=\"dateofbirth\" value=\"".$dbuserdateofbirth."\"></input></td>
</tr>
<td id=\"left\"><input size=\"50\" type=\"button\" id=\"button\" name=\"btnsubmit\" onClick=\"function1();\" value=\" Save \"/></td>
这是 JavaScript 文件中出现错误的行:
name : document.userForm.name.value,
surname : document.userForm.surname.value,
title : document.userForm.title.value,
只有名称和标题具有字符串类型,所有其他字段均未定义。这对我来说非常奇怪,因为我在整个项目中都使用了这个确切的代码并且它工作正常。