WdatePicker时间改变事件(顺带解决有些浏览器下兼容性问题)
来源:互联网 发布:php 转为utf8 编辑:程序博客网 时间:2024/05/29 16:35
WdatePicker时间改变事件
<input id="starttime" type="text" size="17" name="starttime" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'endtime\')}',minDate:'2011-06-01'})"
readonly="readonly" value="<s:property value='#starttime'/>"
onpropertychange="getstat()"/>
需求: 在做了时间修改之后,能自动的动态查询数据!
最初我使用的是:onchange事件,但经过测试发现,onchange事件,当你做出时间选择之后,你查询结果不会做任何改变的,原因就是:onchange事件要等到失去焦点才会激活。
后来我更换成了,onbulr事件,同样的没有达到我的要求,pass掉;换了 onkeyup(onkeyup 有一个弱点,就是当用户粘贴内容时不能"及时"被触发.其他onkeypress onkeydown 都有这样的不足),同样pass掉了,其实根本不用尝试就可以得出这个结论的,需求在那,跟粘贴无关那,遇到问题还是思路不够条理,先看清问题再解决也不迟,所以咱犯错误了,呵呵!
最后,查阅资料:onpropertychange事件(onpropertychange能够捕获每次改,onpropertychange 事件被触发的机会就多了很多)只在对象(或元素)某一个property 被改变,这个事件都会随之触发,看,多好用的一个事件啊!不过还是存在问题呢!
onpropertychange 不被firefox所支持,如果想在firefox下正常使用,需要用oninput属性, 且需要用 addEventListener来注册事件。
利用IE的onpropertychange事件和在FF中具有同样效果的oninput事件,这两个事件用在<input type='text'>中就是来监视input标签的属性的变化,因为onpropertychange是IE的特有事件,所以首先还要判断浏览器的类型来选择给<input>标签增加相对应的事件监听,在 IE下给<input>添加onpropertychange事件监听,在FF下添加oninput事件监听,只要用户的输入值发生变化就会出发相应的事件,这样我就能随时取得用户输入如的值,进而进行动态过滤查询!
另外,attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)
addEventListener方法 用于 Mozilla系列
兼容性代码测试
var starttime= document.getElementByIdx_x("starttime");
if("\v"=="v") { //判断浏览器是否是IE
starttime.onpropertychange = times;
}else{
starttime.addEventListener("input",times,false);
}
function times(){
document.getElementByIdx_x('starttime').innerHTML=starttime.value;
}
总结
在文本框输入数据的时候,当键盘按下并放开的时候可以使用 onkeyup来检测事件;
可是有的时候就像我这次的需求,我们输入数据是采用粘贴的方式而不是键盘输入,这就需要实时检测文本框状态的改变。
onchange触发事件必须满足两个条件:
1、当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)
2、当前对象失去焦点(onblur);
简而言之:onchange需要执行某个事件才可以捕获。
onpropertychange的话,只要当前对象属性发生改变,都会触发事件,因此用途更为广泛,只可惜它是兼容IE ; 简而言之: onpropertychange能够捕获每次改变;
oninput是onpropertychange的非IE浏览器版本,支持 firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
attachEvent和addEventListener的区别!
attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)
addEventListener方法用于 Mozilla系列
oninput与onpropertychange失效的情况:
(1)oninput事件:a). 当脚本中改变value时,不会触发;b). 从浏览器的自动下拉提示中选取时,不会触发。
(2)onpropertychange事件:当input设置为disable=true后,onpropertychange不会触发。
- WdatePicker时间改变事件(顺带解决有些浏览器下兼容性问题)
- WdatePicker改变事件触发优化
- 事件绑定的多种形态解决多种形态的浏览器兼容性问题(以及attachEvent中this指向的改变)
- 解决css firefox火狐浏览器IE浏览器下的兼容性问题
- css解决浏览器兼容性问题
- 解决浏览器兼容性问题
- Javascript解决浏览器兼容性问题
- css 浏览器兼容性问题解决
- 临时解决浏览器兼容性问题
- 如何解决浏览器兼容性问题
- 浏览器兼容性问题解决
- 用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式(顺带解决很多兼容性问题)
- chrome浏览器下兼容性问题
- 页面在360浏览器下的兼容性问题解决
- 页面在360浏览器下的兼容性问题解决【转】
- 解决不同浏览器下获取样式的兼容性问题
- 页面在360浏览器下的兼容性问题解决
- Wdatepicker选择时间后触发事件
- 地图之对象图块
- imagebutton
- 一个偶然错误引起对gcc和g++的认识
- 128 - Software CRC//大数求余
- Android实现pppoe拨号上网(二)具体步骤
- WdatePicker时间改变事件(顺带解决有些浏览器下兼容性问题)
- 数据库建模
- linux清除tomcat缓存
- 常用的兼容性问题
- 计算机的启动过程(详细)
- 线段树(1)
- Linux 的cp命令
- 重读经典-《Effective C++》Item2:尽量以const,enum,inline替换#define
- Project2013新功能---在Project中使用Lync来沟通