【问题标题】:Function not working when called inside a div在 div 中调用时函数不起作用
【发布时间】:2016-03-12 05:28:01
【问题描述】:

我在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

【问题讨论】:

    标签: javascript


    【解决方案1】:

    我已将 onclick 事件更改为 document.getElementById('blockOfStuff').style.display= 'block',现在它可以工作了。

    谢谢

    【讨论】:

      【解决方案2】:

      当您使用div 并将innerHTML 复制到别处时,您将拥有多个具有相同id 的元素。这是非法的,会发生各种奇怪的事情。

      script 标记中的元素不是“常规”文档的一部分,复制它们时不会出现这种冲突。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 2010-10-20
        • 2020-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多