oninputonpropertychangeonchange的用法及区别..docVIP

oninputonpropertychangeonchange的用法及区别..doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oninputonpropertychangeonchange的用法及区别.

1、前言 ??? 由于工作需要,需实现一个类似于微博输入框的功能,在用户动态输入文字的时候,修改提示“您还可以输入XX字”。如下图所示: ?? 因此,稍微研究了一下oninput,onpropertychange,onchange的区别和用法,以及onpropertychange在ie浏览器下的一个bug。 ? 2、oninput,onpropertychange,onchange的用法 ?????????? onchange触发事件必须满足两个条件: a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效) b)当前对象失去焦点(onblur); ?????????? onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的; ?????????? oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。 ? 在textarea中,如果想捕获用户的键盘输入,用onkeyup检查事件就可以了,但是onkeyup并不支持复制和粘贴,因此需要动态监测textarea中值的变化,这就需要onpropertychange(用在IE浏览器)和oninput(非IE浏览器)结合在一起使用了。 ? 3、代码实现: ? 第一种方法是直接写入textarea的onpropertychange和oninput属性 view plaincopy to clipboardprint? textarea?id=wb_comment_content?name=wb_comment_content?onblur=blur_wb_textarea(this);?onfocus=click_wb_textarea(this);?onpropertychange=set_alert_wb_comment();?oninput=set_alert_wb_comment();?class=gary666?style=font-size:12px;?mce_style=font-size:12px;欢迎您每天来微评爱车哦……?? ? 如果想要用JavaScript设置textarea的属性,需如下: view plaincopy to clipboardprint? if(isIE)?? {?? ????document.getElementById(wb_comment_content).onpropertychange?=?set_alert_wb_comment();?? }?? else?//需要用addEventListener来注册事件 ?? {?? ????document.getElementById(wb_comment_content).addEventListener(input,?set_alert_wb_comment,?false);?? }?? ? 其余函数 ? view plaincopy to clipboardprint? function?click_wb_textarea(obj)?? ?? {?? ?? ????if(obj.value==obj.defaultValue)?? ?? ????{?? ?? ????????obj.value=;?? ?? ????}?? ?? ????//obj.className=;???????//这样设置类名在ie下会有在输入第一个字符的时候onpropertychange不会触发的bug ?? ?? ????obj.style.color=#000;?? ?? ????return?false;?? ?? }?? ?? function?blur_wb_textarea(obj)?? ?? {?? ?? ????if(obj.value==)?? ?? ????{?? ?? ????????//obj.className=gary666; ?? ?? ????????obj.style.color=#666;?? ?? ????????obj.value=?obj.defaultValue;?? ?? ????}?? ?? ????return?false;?? ?? }?? ?? ? 4、onpropertychange的bug ??? 在代码实现时,发现在响应用户onclick了textarea时,如果使用obj.className=XX;来改变textarea输入框中字体的样式,会导致在ie下会有在输入第一个字符的时候onpropertychange不会触发的bug,因此需

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档