1\. onchange onchange 事件會在域的內容改變時觸發。支持的標簽, , ,。 註意:在元素的值改變了且失去焦點時觸發(兩次的值一樣不會觸發)。 缺陷:通過js代碼改變DOM的值不會觸發,解決在js代碼里改值了調用其change 的 function() 或者調.change()方法 ...
1. onchange
onchange 事件會在域的內容改變時觸發。支持的標簽, , ,。
註意:在元素的值改變了且失去焦點時觸發(兩次的值一樣不會觸發)。
缺陷:通過js代碼改變DOM的值不會觸發,解決在js代碼里改值了調用其change 的*function() *或者調.change()方法。
JS:
<input type="text" id="cc" onchange="function()">
JQuery:
$("#cc").change(function(){});
2. onpropertychange
onpropertychange會實時觸發,會在元素的屬性改變時就觸發事件。當元素disable=true時不會觸發。
缺陷:只在IE 下支持,其他瀏覽器不支持,用oninput來解決。
JS:
<input type="text" id="cc" onpropertychange="functionName()">
3. oninput
oninput在或的值發生改變時觸發,不需要等到元素失去焦點,是實時的。它是HTML5的事件,可用於檢測文本類輸入框的值。
缺陷:從腳本中修改值不會觸發事件。從瀏覽器下拉提示框里選取值時不會觸發。IE9 以下不支持,所以IE9以下可用onpropertychange 事件代替。
JS:
<input type="text" oninput="functionName()">
JQuery:
$("#cc").on('input propertychange',functionName);
4. addEventListener
addEventListener()用於向指定元素添加事件方法。使用removeEventListener()移除添加的事件方法。IE9以下不支持,用attachEvent代替。
語法: element.addEventListener(event, function, useCapture)
5.jquery實時監聽input輸入框值的變化事件
只需要同時綁定 oninput 和 onpropertychange 兩個事件,獲取input元素,並實時監聽用戶輸入。
$('input').bind('input propertychange', function(){
if($(this).val()){
console.log("hhhhhhhh");
}else{
console.log("xxxxxxxx");
}
})
但這並不完美,因為用的bind,所以當遇到追加的新input標簽時,則不能監聽了。
為瞭解決上面的問題,可以使用live替代
$('input').live('input propertychange', function()
{
//獲取input 元素,並實時監聽用戶輸入
//邏輯
})
文章參考:
https://www.cnblogs.com/gopark/p/10487800.html
https://blog.csdn.net/qq_41756580/article/details/81287095