2017-07-25 128 views
-1

下面的代码片段有HTML onchange属性以及jQuery的更改事件对输入文本。我只想要jQuery的更改事件有效。我尝试使用unbindoff都没有运气。使用jQuery删除HTML onchange代码

有人请帮忙吗?

$(document).ready(function(){ 
 
    $("#testInput").unbind("change").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');"/>

+0

你有什么打算从这个达到什么目的?我很困惑 –

+0

我必须这样做,以阻止使用onchange属性,并使其无法工作,即使在代码中存在。 – Beginner

+0

removeAttr('onchange'.....? –

回答

2

如果你想删除 “前面的” onchange事件,使用 $("#testInput").removeAttr("onchange")

$(document).ready(function() { 
 
    $("#testInput").removeAttr("onchange") 
 
    $("#testInput").unbind("change").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');" />

+0

谢谢,这个作品。:) – Beginner

0

试试这个

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

这不起作用。 – Beginner

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"); 
    }); 
}); 
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');"/>