在javascript中以编程方式将onclick事件添加到输入字段并不起作用

时间:2016-11-14 20:30:43

标签: javascript html

我希望我的Input字段看起来像这样:

<input type="submit" value="Remove" onclick="deleteRow(this)">

但它没有用。我试过:

Input.onclick = function () { deleteRow(this); };

也不行。我的deleteRow函数如下所示:

    function deleteRow(o) {
        var p = o.parentNode.parentNode;
        p.parentNode.removeChild(p);
    } 

有关如何使其发挥作用的任何建议吗?

2 个答案:

答案 0 :(得分:0)

您可以在id字段中添加input并将onclick事件附加到其中:

&#13;
&#13;
function DeleteRow(o) {
  var p = o.parentNode.parentNode;
  p.parentNode.removeChild(p);
}
document.getElementById("myinput").onclick = function () {
  DeleteRow(this);
};
&#13;
<input type="submit" id="myinput" value="Remove" onclick="DeleteRow(this)">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个。如果您无意提交,请将type=submit更改为type=button

&#13;
&#13;
function DeleteRow(o) {
  var p = o.parentNode.parentNode;
  console.log(p);
  p.parentNode.removeChild(p);
}
&#13;
<div id="one">
  <div id="two">
    Goint to be deleted
    <form id="three">
      <input type="button" value="Remove" onclick="DeleteRow(this)">
    </form>
  </div>
</div>
&#13;
&#13;
&#13;

但如果您需要保留type=submit,我认为您应该像这样传递事件参数

<!-- in case you need to use submit, pass event as parameter-->
<input type="submit" value="Remove" onclick="DeleteRow(this, event)">