在div中调用时函数不起作用

时间:2015-12-07 14:53:47

标签: javascript

我在div内有一个隐藏的表单,点击按钮显示。

在表单中我有一个input文本字段,以及一个应该调用添加另一个输入字段的JavaScript函数的按钮。

如果名为"blockOfStuff"的容器是div,如您所见,该功能不起作用。如果我将<div>容器标记更改为<script>标记,那么它正在运行...

怎么了?

<script>
function addProceduri(divName){  
      c = document.getElementById("proceduri").getElementsByTagName("div").length;
          var moddiv = document.createElement('div');
          moddiv.innerHTML = "<input type='checkbox' value='1' name='check" + c + "'><input type='text' name='procedura" + c + "'>";
          document.getElementById(divName).appendChild(moddiv);
    }  
</script>

<input type="button" value="ADD" onClick="addbox.innerHTML=blockOfStuff.innerHTML;">
<div id="addbox"></div>

<div id="blockOfStuff" name="blockOfStuff" style="display: none;">

<form name="adaugare" enctype="multipart/form-data" action="afisare.php?add=1" method="POST">   

<div id="field"> Procedures: <input type="button" value="+" onClick="addProceduri('proceduri');">
  <div id="proceduri">  
<?php        
       echo '<div><input type="checkbox" name="check0" value="1"><input type="text" name="procedura0" value=""></div>';

?>

  </div>
 </div> 

</form>
</div>  // end of "blockOfStuff" div

2 个答案:

答案 0 :(得分:0)

当您使用div并将innerHTML复制到其他位置时,您将拥有多个具有相同id的元素。这是非法的,会发生各种各样的怪异。

script代码中的元素不属于&#34;常规&#34;文档,当他们被复制时,你不会有这种冲突。

答案 1 :(得分:0)

我已将onclick envent更改为document.getElementById(&#39; blockOfStuff&#39;)。style.display =&#39; block&#39;现在它正在工作。

由于