使用jQuery删除HTML onchange代码

时间:2017-07-25 06:59:11

标签: javascript jquery html

下面的代码段在输入文本中包含 HTML onchange属性以及 jQuery的更改事件。我只希望 jQuery的更改事件有效。我没有运气就尝试使用webpack templateunbind

有人可以帮忙吗?



<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="testInput" type="text" onchange="console.log('change');"/>
&#13;
{{1}}
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:2)

如果你想删除&#34;之前的&#34; onchange事件,请使用 $("#testInput").removeAttr("onchange")

&#13;
&#13;
$(document).ready(function() {
  $("#testInput").removeAttr("onchange")
  $("#testInput").unbind("change").bind("change", function() {
    console.log("jQuery change");
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="testInput" type="text" onchange="console.log('change');" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以将onchange设置为null并添加侦听器,例如:

$(document).ready(function(){
    //remove inline 'onchange' event by setting it to null
    $("#testInput")[0].onchange = null;

    $(document).on("change" "#testInput", function(){
      console.log("jQuery change");
    });
});

答案 2 :(得分:1)

只需删除onchange属性即可。 removeAttr('onchange')将删除onchange属性

$(document).ready(function(){
  $("input").each(function(){    
     $(this).removeAttr('onchange');
  });
  $("input").bind("change",function(){
    console.log("jQuery change");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="testInput" type="text" onchange="console.log('change');"/>
<input id="testInput2" type="text" onchange="console.log('change');"/>

答案 3 :(得分:0)

试试这个

$(document).ready(function(){
  $(document).on('change','#testInput',function(){
    console.log("jQuery change");
  });
});