2017-07-25 129 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');"/>