Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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:Can';在DOM中找不到新添加的表单输入_Javascript_Dom_Dhtml - Fatal编程技术网

Javascript:Can';在DOM中找不到新添加的表单输入

Javascript:Can';在DOM中找不到新添加的表单输入,javascript,dom,dhtml,Javascript,Dom,Dhtml,我只能假设我做错了什么,因为当我遍历javascript时,它根本找不到对象 我试图做的是动态地向表中添加组合框行。组合框代码或多或少是不相关的,因为尝试通过遍历表单在DOM中查找新生成的输入似乎不起作用。我不确定他们是否存在 首先,我有表格本身: <form name="WEB070EDIT" action="WEB070" method="POST"> 显然,这是脚本本身中的所有变量,但根据调试器,它就是根据这些变量进行解析的 当我使用Firebug的DOM检查器时,我可以找到

我只能假设我做错了什么,因为当我遍历javascript时,它根本找不到对象

我试图做的是动态地向表中添加组合框行。组合框代码或多或少是不相关的,因为尝试通过遍历表单在DOM中查找新生成的输入似乎不起作用。我不确定他们是否存在

首先,我有表格本身:

<form name="WEB070EDIT" action="WEB070" method="POST">
显然,这是脚本本身中的所有变量,但根据调试器,它就是根据这些变量进行解析的


当我使用Firebug的DOM检查器时,我可以找到表单,我可以找到WEB070EDIT,但是我找不到隐藏的输入P2\u MATERIAL\u 1。静态的东西都在里面,但是没有动态生成的东西。这难道不适用于动态对象吗?我错过什么了吗?我构建它是完全错误的吗?

我在这里看到了各种问题

我不明白你为什么要使用
eval()
。您正在评估的内容可以称为普通的旧JavaScript。第一个
eval()

你希望这能做什么

document.createElement("text");
这将在HTML中创建一个
标记,但该标记无效。你想做这样的事吗

document.createElement("input");
cellElem.type = 'text';
//...
您正在设置一个
size
属性,因此我猜您正在尝试生成

您正在初始化
addForm1。计数器
,但从未递增它。你最终会得到重复的ID,这会导致咬牙切齿和各种各样的混乱

创建一个

然后将其丢弃,因为您忽略了将其添加到DOM中。您还可以在
之后创建一个
onClick
属性,但没有将其添加到任何内容中

我将代码精简了一些,并添加了一些您缺少的内容,似乎效果很好:

之所以使用eval()是因为我需要在其中进行一些字符串连接。我不知道在没有评估的情况下这是否有效。事实证明,除了您所指出的之外,我的代码还有一些其他错误,但现在它已经解决了,并且可以在Firefox中完美地工作!不幸的是,它在InternetExplorer中仍然失败,但我认为这是另一篇文章的问题。谢谢你的帮助!这是非常有用的。
document.forms['WEB070EDIT'].elements["P2_MATERIAL_1"]
document.createElement("text");
document.createElement("input");
cellElem.type = 'text';
//...
cellElem = document.createElement("select");