我有以下问题:
我有一个HTML文本框(),其内容由我无法触摸的脚本修改(这是我的页面,但我正在使用外部组件).
我希望每次文本框的值发生变化时都会在我的脚本中收到通知,所以我可以对它做出反应.
我试过这个:
txtStartDate.observe('change', function() { alert('change' + txtStartDate.value) });
哪(可预见)不起作用.它只会在我自己用键盘更改文本框值然后将焦点移动到其他位置时执行,但如果脚本更改了值,则不会执行它.
还有我可以听的另一个事件,我不知道吗?
我正在使用Prototype库,如果它是相关的,修改文本框值的外部组件是Basic Date Picker(www.basicdatepicker.com)
正如您所暗示的那样,更改(和其他事件)仅在用户执行某些操作时触发.修改内容的脚本不会触发任何事件.你唯一的解决方案就是找到一些可以连接到你的监听器的控件.
我将如何做到这一点:
basicDatePicker.selectDate = basicDatePicker.selectDate.wrap(function(orig,year,month,day,hide) { myListener(year,month,day); return orig(year,month,day,hide); });
这是基于Firebug的粗略外观(我不熟悉该组件).如果还有其他方法可以选择日期,那么您还需要包装这些方法.