0

突然之间,我在 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,

只有名称和标题具有字符串类型,所有其他字段均未定义。这对我来说非常奇怪,因为我在整个项目中都使用了这个确切的代码并且它工作正常。

4

2 回答 2

1

您尝试执行此操作的方式是

  • 被认为已经过时了,因为上帝知道多久和
  • 不是跨浏览器(但我不确定)

更好的方法是使用以下方法获取元素getElementById

name : document.getElementById('surname').value

不要忘记为id表单分配属性,例如

<input name=\"surname\" id='surname' ...>

有关详细信息,请参阅getElementByIdMDN 文档

于 2013-07-30T09:49:08.827 回答
0

\由于这个原因,在添加之前存在一些问题",否则它工作正常,请在下面的 jsfiddle 中查找

http://jsfiddle.net/YVf3D/

于 2013-07-30T09:53:38.413 回答