要检测文本框中的更改,我必须在IE中使用“ onpropertychange”(对于其他用户,请使用“ oninput”)
“ onpropertychange”的行为与“ oninput”非常类似,但是它也由非用户行为触发。
有没有办法找到“ onpropertychange”是否由用户操作触发(下面列出)
键盘输入
切
删除
糊
从下拉式提示框中选择
最佳答案
不能。最好的选择是使用包装函数来更改文本框的值。
[编辑:可以在IE 8及更高版本中使用吸气剂和吸气剂来做到这一点。见@AndyE的评论]
现场演示(仅适用于IE):http://jsfiddle.net/4C6KL/
码:
var textBox = document.getElementById("foo");
var changingValue = false;
textBox.onpropertychange = function() {
if (window.event.propertyName == "value" && !changingValue) {
// Do stuff here
}
};
function setTextBoxValue(val) {
changingValue = true;
textBox.value = val;
changingValue = false;
}