近来应公司需求,从.net转而学习php,在做一个页面的时候遇到日期切换需要修改select 值
笔者用的是这个控件My97DatePicker/WdatePicker.js
日期控件的修改切换下面的select
刚遇到这个问题的时候自然而然的想到了input的onchange事件,试了之后,发现在选择完时间控件之后,必须要在页面上点击一下才会自动切换执行修改select值的方法。
这样做并不能给使用者完美的体验。
上线之后笔者使用不能忍受这个操作,然后就网上查看onchange事件的原理。
onchange事件分为两步:1、控件内容改变。2、控件失去焦点
两者同时存在的时候才会触发onchange中包含的事件。
然后笔者开始想如果可以当前对象属性改变是由键盘或者鼠标触发的 或者 在控件失去焦点的时候触发事件都是好的。
onpropertychange的事件可以用,但是只兼容ie
使用了失去焦点的onblur方法。在切换的时候完成触发事件。
onfocus在获取焦点时触发事件
最后笔者使用了onfocus事件
下面是调用的异步加载方法(#startTime)表示的是select控件名称
/NewsIssuedArticleCount/ajaxStartTimeList是异步调用的方法返回的结果集为一个key=>value对应的数组
2.补充
在这之后keydown事件、keyup事件以及keypress事件都可以在文本框发生变化的时候使用。