时时监控input的变化

移动端(html5)微信公众号下用keyup实时监控input值的变化无效

2014-10-17 14:51 16738人阅读 评论(1) 收藏 举报

 分类:

html5(30)  javascript(84) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

搜索框依据用户输入的值实时检索,一开始自然而然想到keyup,在拼音状态时,啥问题也没有,

问题1:切换到中文输入法,问题出来了,keyup事件不灵便了,后来在网上搜了下,找到了思路,

问题2:微信公众平台开发时,客户提需求“输入框中输入内容时,输入框后边显示清除按钮,清除输入框中的内容”,使用“keyup”事件时在中文输入法下部分按键keyup事件无效,

方法一:主要是给搜索框注册focus事件,隔个时间去检索下,贴出代码

[html] view plain copy

print?

  1. <script language="javascript" type="text/javascript" src="jquery.js"></script>
  2. <script>
  3. $(function () {
  4. $(‘#wd‘).bind(‘focus‘,filter_time);
  5. })
  6. var str = ‘‘;
  7. var now = ‘‘
  8. filter_time = function(){
  9. var time = setInterval(filter_staff_from_exist, 100);
  10. $(this).bind(‘blur‘,function(){
  11. clearInterval(time);
  12. });
  13. };
  14. filter_staff_from_exist = function(){
  15. now = $.trim($(‘#wd‘).val());
  16. if (now != ‘‘ && now != str) {
  17. console.log(now);
  18. }
  19. str = now;
  20. }
  21. </script>

方法二:用 input 和 propertychange事件可以解决,

本人测试只能用dom2的绑定方法使用 如 document.getElementById(‘box‘).addEventListener(‘input‘,function(){...dosomething...},false);

[html] view plain copy

print?

  1. html>
  2. <head>
  3. <script type="text/javascript" src="http://www.zlovezl.cn/static/js/jquery-1.4.2.min.js"></script>
  4. </head>
  5. <body>
  6. <p>
  7. 使用oninput以及onpropertychange事件检测文本框内容:
  8. </p>
  9. <p>
  10. <input type="text" name="inputorp_i" id="inputorp_i" autocomplete="off"/>
  11. <span id="inputorp_s"></span>
  12. <script type="text/javascript">
  13. //先判断浏览器是不是万恶的IE,没办法,写的东西也有IE使用者
  14. var bind_name = ‘input‘;
  15. if (navigator.userAgent.indexOf("MSIE") != -1){
  16. bind_name = ‘propertychange‘;
  17. }
  18. $(‘#inputorp_i‘).bind(bind_name, function(){
  19. $(‘#inputorp_s‘).text($(this).val());
  20. })
  21. </script>
  22. </p>
  23. </body>
  24. </html>

可是也有人说用jq方式绑定即可 如:

[javascript] view plain copy

print?

  1. $(‘#input‘).bind(‘input propertychange‘, function() {
  2. alert("....")
  3. });

或者原生:

[html] view plain copy

print?

  1. <script type="text/javascript">
  2. // Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9
  3. function OnInput (event) {
  4. alert ("The new content: " + event.target.value);
  5. }
  6. // Internet Explorer
  7. function OnPropChanged (event) {
  8. if (event.propertyName.toLowerCase () == "value") {
  9. alert ("The new content: " + event.srcElement.value);
  10. }
  11. }
  12. </script>
  13. <body>
  14. <input type="text" oninput="OnInput (event)" onpropertychange="OnPropChanged (event)" value="Text field" />
  15. </body>

最后需要注意的是:oninput 和 onpropertychange 这两个事件在 IE9 中都有个小BUG,那就是通过右键菜单菜单中的剪切和删除命令删除内容的时候不会触发,而 IE 其他版本都是正常的,目前还没有很好的解决方案。不过 oninput & onpropertychange 仍然是监听输入框值变化的最佳方案..

时间: 2024-10-07 04:13:10

时时监控input的变化的相关文章

实时监控input输入值变化

在web开发中,我们有时会需要动态监听输入框值的变化,当使用onkeydown.onkeypress.onkeyup作为监听事件时,会发现一些复制粘贴等操作用不了,同时,在处理组合快键键的时候也很麻烦.这时候我们需要更专业的解决方案:HTML5标准事件oninput.onchange和IE专属的事件properchange. 1.oninput&onchange: oninput和onchange都是事件对象,当输入框的值发生改变时触发该事件.不同的是,oninput是在值改变时立即触发,而on

angularJS使用$watch监控数据模型的变化

使用$watch监控数据模型的变化 在scope 内置的所有函数中,用得最多的可能就是$watch 函数了,当你的数据模型中某一部分发生变化时,$watch 函数可以向你发出通知.你可以监控单个对象的属性,也可以监控需要经过计算的结果(函数),实际上只要能够被当作属性访问到,或者可以当作一个JavaScript 函数被计算出来,就可以被$watch 函数监控.它的函数签名为 $watch(watchFn, watchAction, deepWatch) 其中每个参数的详细含义如下. watchF

android 监控EditText的变化

在玩android的时候,有时候需要这样的功能,在editText里输入字符,要实时的监控输入的内容,比如 我要获取手机的IMEI号码.最后要输入*#06#就可以获取到了.那这是如何做到呢?或者说Phone是如何实现这个功能的呢? 这主要用到了TextWatcher接口. public class DialpadFragment extends Fragment implements View.OnClickListener, View.OnLongClickListener, View.OnK

vuejs能否监控localStorage的变化?

https://segmentfault.com/q/1010000006806036 1.问题 用vue.js过程中了解到计算属性,它类似于定义了一个函数f,f的返回值依赖于某些变量a,b,c.当a,b,c中任意一个发生变化,就调用f得到新的返回值. 我现在用token做登录身份验证,使用到localStorage,在computed中编写"函数",根据localStorage的值,在导航栏显示不同的链接:已经登录的显示"用户名"和"退出",未

onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法

1. onchange事件监听input值变化的使用方法: <input id="test"></input> $("input").change(function(){ alert("aaa"); } 2. 网页开发时,如果有input隐藏域,通过js改变隐藏域的值,无法触发change事件. 原因:onchange事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发. 解决方法:在这种情况下,可以在改变隐藏域的值

Python监控文件内容变化

利用seek监控文件内容,并打印出变化内容: #/usr/bin/env python #-*- coding=utf-8 -*- pos = 0 while True:     con = open("a.txt")     if pos != 0:         con.seek(pos,0)     while True: line = con.readline() if line.strip():     print line.strip() pos = pos + len(

[转帖]监控Linux文件变化,防止系统被黑

监控Linux文件变化,防止系统被黑 https://os.51cto.com/art/201912/608702.htm改天尝试一下 inotify 运维服务器比较头疼的一个问题是系统被黑,沦为肉鸡或者矿机.除了加强安全基线配置,加强网络和端口加固,系统和应用bug修复,上IDS/IPS(入侵检测/防御系统)之外,另一个方面就是系统监控,一个完善准确的安全监控可以在主机层面及时发现入侵活动.予以告警以备及时处理. 作者:虫虫安全来源:今日头条|2019-12-31 14:00 收藏 分享 运维

移动端(html5)微信公众号下用keyup实时监控input值的变化无效

搜索框依据用户输入的值实时检索,一开始自然而然想到keyup,在拼音状态时,啥问题也没有, 问题1:切换到中文输入法,问题出来了,keyup事件不灵便了,后来在网上搜了下,找到了思路, 问题2:微信公众平台开发时,客户提需求“输入框中输入内容时,输入框后边显示清除按钮,清除输入框中的内容”,使用“keyup”事件时在中文输入法下部分按键keyup事件无效, 方法一:主要是给搜索框注册focus事件,隔个时间去检索下,贴出代码 <script language="javascript&quo

jquery监控input输入框的变化

(function($) { $.fn.watch = function(callback) { return this.each(function() { //缓存以前的值 $.data(this, 'originVal', $(this).val()); //event $(this).on('keyup paste', function() { var originVal = $(this, 'originVal'); var currentVal = $(this).val(); if