公司有个文本框,当输入文字/粘贴/复制 或者是键盘猛按的时候,都希望这个文本框能统计出 输入了多少字

 

这种用 onchange   onkeyup  onkepress  都不怎么好使

 

最后在快要无语的情况下,使用了  下面的组合方式

 onkeyup="commMaxLength(this,30,'leftWordTitle')" oninput="commMaxLength(this,30,'leftWordTitle')" onpropertychange="commMaxLength(this,30,'leftWordTitle')"

有前辈说用jquery更风骚,于是下面发一个jquery的  (只写了 oninput  和 onpropertychange )

 

$('textarea').bind('input propertychange', function() {
$('.msg').html($(this).val().length + ' characters');
});

如果不用jquery库,还可以这样

<head>
<script type="text/javascript">
// Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9
function OnInput (event) {
alert ("The new content: " + event.target.value);
}
// Internet Explorer
function OnPropChanged (event) {
if (event.propertyName.toLowerCase () == "value") {
alert ("The new content: " + event.srcElement.value);
}
}
</script>
</head>
<body>
Please modify the contents of the text field.
<input type="text" oninput="OnInput (event)" onpropertychange="OnPropChanged (event)" value="Text field" />
</body>

最后是注释

1、onchange事件与onpropertychange事件的区别:
onchange事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发;onpropertychange事件却是实时触发,即每增加或删除一个字符就会触发,通过js改变也会触发该事件,但是该事件IE专有。
2、oninput事件与onpropertychange事件的区别:
oninput事件是IE之外的大多数浏览器支持的事件,在value改变时触发,实时的,即每增加或删除一个字符就会触发,然而通过js改变value时,却不会触发;onpropertychange事件是任何属性改变都会触发的,而oninput却只在value改变时触发,oninput要通过addEventListener()来注册,onpropertychange注册方式跟一般事件一样。(此处都是指在js中动态绑定事件,以实现内容与行为分离)
3、oninput与onpropertychange失效的情况:
(1)oninput事件:a). 当脚本中改变value时,不会触发;b). 从浏览器的自动下拉提示中选取时,不会触发。
(2)onpropertychange事件:当input设置为disable=true后,onpropertychange不会触发。

 

知识链接 :http://www.zlovezl.cn/articles/12/

 

最牛叉的解决方法(真的是实时的,可以着重看看这个) http://polaris.blog.51cto.com/1146394/265667/

最新文章

  1. .NET RESTful Web Services入门
  2. ORACLE RETURNING 用法总结
  3. 让IE6/IE7/IE8浏览器支持CSS3属性
  4. LoadRunner:视频教程、课件
  5. 与你相遇好幸运,服务器node环境安装
  6. selenium-webdriver(python) (十四) -- webdriver原理
  7. AspxSpy2014 Final
  8. 矩阵的QR分解
  9. idea上实现github代码同步
  10. JDBC中的事务-Transaction
  11. Waring:This LinearLayout layout or its FrameLayout parent is useless; transfer the background attribute to the other view
  12. Android开发UI之手动显示和隐藏软键盘
  13. 分别取商和余数:divmod(a, b)
  14. 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&amp;&amp;如果可行必定最优&amp;&amp;非证明最优性)的题)(K)
  15. UVa 1583 - Digit Generator
  16. 恢复SQLSERVER被误删除的数据(转)
  17. NYOJ116 士兵杀敌(二)
  18. [POI 2004]SZP
  19. intellij idea 2017和Jprofiler 10的集成 报错问题
  20. synchronize 关键字原理

热门文章

  1. css超出一行添加省略号属性:text-overflow和white-space
  2. Python 连接数据库 mysql
  3. spring IOC 模拟实现
  4. Android开发(三十)——ScrollView中ListView的高度自动适应
  5. Sqlserver 2008 error 40出现连接错误的解决方法
  6. 解决maven项目 maven install失败 错误 Failed to execute goal org.apache.maven.plugins
  7. STM32f103的数电采集电路的TIMER定时器的使用与时序控制的程序
  8. C++中嵌入python程序——命令行模式
  9. Selenium (2) —— Selenium WebDriver + Grid2(101 Tutorial)
  10. Java编程的逻辑 (50) - 剖析EnumMap