我有几个只读文本字段和一个用普通的旧 javascript 编写的日期选择器。问题是我需要检测何时设置文本,但由于整个站点都使用相同的 js,所以我不能真正将代码(如something.trigger('change')
)放入 js 文件中。有没有其他方法可以在不修改日历js的情况下检测到变化?
问问题
80 次
1 回答
2
如果在某些情况下使用 JavaScript 更改值,那么 onchange 不会触发。
有突变事件,但它们已被弃用,未来会有突变观察者,但很长一段时间内不会完全支持。那么在此期间你能做什么呢?
您可以使用计时器来检查元素。
function addValueListener(elemId, callback) {
var elem = document.getElementById(elemId);
var lastValue = elem.value;
window.setInterval( function() {
var value = elem.value;
if (value !== lastValue) {
callback();
lastValue = value;
}
},10);
}
写成 jQuery:
function addValueListener(elemId, callback) {
var elem = $(elemId);
var lastValue = elem.val();
window.setInterval( function() {
var value = elem.val();
if (value !== lastValue) {
callback();
lastValue = value;
}
},10);
}
运行示例:jsFiddle
于 2012-05-16T05:45:09.447 回答