Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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,错误: 未捕获异常:[异常…”组件返回故障代码:0x80004003(NS_错误\u无效指针)[nsIDOMHTMLSelectElement.appendChild]“nsresult:“0x80004003(NS_错误\u无效指针)”位置:“JS帧:::::行104”数据:否] 该代码旨在创建: textboxt-textbox-textbox-pulldown-textbox 下面是代码 <script type="text/javascript"> <!-- var

错误:

未捕获异常:[异常…”组件返回故障代码:0x80004003(NS_错误\u无效指针)[nsIDOMHTMLSelectElement.appendChild]“nsresult:“0x80004003(NS_错误\u无效指针)”位置:“JS帧:::::行104”数据:否]

该代码旨在创建:

textboxt-textbox-textbox-pulldown-textbox

下面是代码

<script type="text/javascript">
<!--
  var ta=new Array();
  var n=15;
window.onload=function()
{
   inp=document.getElementsByTagName('input');
for(c=0;c<inp.length;c++) 
    {
        if(inp[c].value=='add') 
        {
           inp[c].onclick=function() 
            {
                var ta = [];
                var n = 15;

               ta[n]=document.createElement('input');
               ta[n].setAttribute('rows',1);
               ta[n].setAttribute('cols',20);
               ta[n].name='time'+n;
               document.getElementById('txtara').appendChild(ta[n])
               ta[n]=document.createElement('input');
               ta[n].setAttribute('rows',1);
               ta[n].setAttribute('cols',20);
               ta[n].name='event'+n;
               document.getElementById('txtara').appendChild(ta[n])
               ta[n]=document.createElement('input');
               ta[n].setAttribute('rows',1);
               ta[n].setAttribute('cols',20);
               ta[n].name='supplies'+n;
               document.getElementById('txtara').appendChild(ta[n])

                var sel = document.createElement('select');



                ta[n]=document.createElement('option');
                ta[n].value = 'YES';
                ta[n].name='success'+n;
                ta[n].innerHTML = ta[n].value;
                n++;
                ta[n]=document.createElement('option');
                ta[n].value = 'NO';
                ta[n].name='success'+n;
                ta[n].innerHTML = ta[n].value;
                n++;

                sel.appendChild(ta[0]);
                sel.appendChild(ta[1]);


                document.getElementById('txtara').appendChild(sel);



               document.getElementById('here').appendChild(sel);
               document.getElementById('txtara').appendChild(ta[n])
               n++;
            }
         }

    }
}
//-->
</script>

您的代码正在创建节点并将它们存储在
ta[15]
ta[16]
中,但您正在将
ta[0]
ta[1]
中的节点插入到DOM中,而这些节点并不存在


do
var n=0
;不是
n=15

谢谢,我从n=15开始,因为我使用php创建了14行,如果没有足够的内容供用户使用,我希望javascript在此基础上扩展。那我该怎么办?不管怎样。。。看看工作流程。您可以创建两个新节点,其中ta[n]=document.create…,此时n是15和16。但是,您需要执行
sel.appendChild(ta[0])
,这在javascript中是不存在的。文档中的某个地方可能有等效的节点,但它们根本没有链接到您的代码中,因此您实际上是在尝试
sel.appendChild(null)
。那么我应该如何修复它以使sel.appendChild(ta[n])?为什么您甚至使用数组来保存新节点?您可以只做
varx=doc.CreateEle(…);sel.appendChild(x)
不使用数组。对每个节点重新使用
x
不会杀死以前创建的节点,只要在创建新节点和重新使用x之前每次都执行appendChild()。好的,我已经取得了一些进展,但是现在我在正确显示下拉菜单方面遇到了问题这是源代码:
code