现在浏览器都会缓存一些input框输入的内容,这些内容只是为了以后填写方便,一般是点击两次input框就会显示像下拉框一样的选项框,但在这个框里选择的值被填充到input框中时不会触发chang,focus,blur,click,dblclick等常用事件,如果需要当用户选择缓存中的某一个缓存项时触发一个事件,用于提取数据或其它操作时常规事件是做不到的。

后来找了一些文档找到了几个不常用或者是专用性的事件:

oninput和onpropertychange

oninput 事件是当input元素的value值发生变化时就触发【只针对inpu(textarea)的value属性】

onpropertychange 事件是当dom元素的属性值发生变化时就触发【针对整个dom节点】

这两个属性虽然主要的目的不一样,但用于触发input框缓存选择很有用。

只是这两个事件有兼容问题

oninput 事件则支持FF/Opera/Safari/NetScape

onpopertychange 事件只在IE下才有效

所以在正常使用中会把两个事件同时添加,

使用JQuery时:$('input').bind('input propertychange',function(){alert(this.value)});

使用元素事件属性:

document.getElementById('input').οninput=function(){alert(this.value)}

document.getElementById('input').onpopertychange=function(){alert(this.value)}

注意:onchange事件是只有当元素失去焦点且值变化时才会触发,对于缓存选择中填充值是无效的即使失去焦点

转载于:https://blog.51cto.com/php2012web/1579960

input缓存中选值事件触发相关推荐

  1. JS改变input的value值不触发onchange事件解决方案 (转)

    JS改变input的value值不触发onchange事件解决方案 (转) 参考文章: (1)JS改变input的value值不触发onchange事件解决方案 (转) (2)https://www. ...

  2. java textvaluechanged 全选删除不触发_js动态改变input的值不触发input的change事件的解决办法...

    看了网上的资料也比较杂,自己也做一个整理共享一下解决方案 1.原生js的改变之后手动添加监听 1 2 3 var ttt = document.getElementById("ttt&quo ...

  3. onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案)

    onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案) 参考文章: (1)onchange监听inpu ...

  4. iframe页面改动parent页面的隐藏input部件value值,不能触发change事件。

    实现一个依据iframe页面返回充值卡类型不同,安排不同的input部件. 点击选择弹出一个iframe.点击充值卡数据行.返回1.充值卡类型.2.充值卡id(用的UUID).3.充值卡号(字符串). ...

  5. input type=file change事件只触发一次

    javascript 中onchange事件: 当对象的值发生改变的时候才会触发; 即input中value值变化才会触发 如要上传两次,清除文件输入值 转载于:https://www.cnblogs ...

  6. php如何动态为input赋值,input动态赋值后怎么触发change事件

    input经常用的事件有oninput与onchange oninput:事件在用户输入时触发. onchange:事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发 但是当我们给元素赋值时并 ...

  7. JQ JS 改变value值不触发change事件

    JQ改变value值不触发change事件 Change事件触发有两个必要条件:值改变.失去焦点.所以当使用JQ改变值时,控件没有失去焦点,所以不会触发. 目前验证有效的解决办法,只能是手动触发cha ...

  8. angular监听输入框值的变化_angular 实时监听input框value值的变化触发函数方法

    用angulajs + ionic 做了一个登陆页面.效果要通过监听输入框的变化来判断登陆按钮是否可点击.当至少一个输入框为空时登录按钮不可点击.一开始是用的jquery的方法做的,后来发现刷新当前页 ...

  9. python事件触发机制_Python3-事件驱动、IO模型和触发方式

    事件驱动模型 传统编程线性模型 开始 ----> 代码块A ---->代码块B ---->代码块C ...... 结束 每个代码块都有各自实现的功能,按照条件语句顺序判断执行,每一次 ...

最新文章

  1. 欧拉角和旋转矩阵相互转换
  2. shell语法以及监控进程不存在重启
  3. 9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习
  4. linux nice值_linux系统管理之交互式企业站点(连载)
  5. 在C ++应用程序中使用Designer UI文件
  6. bzoj3389:[Usaco2004 Dec]Cleaning Shifts安排值班
  7. java 开发详解_面向接口编程详解-Java篇
  8. Linux创建oracle11实例
  9. web报表工具FineReport使用中遇到的常见报错及解决办法(一)
  10. Struts学习之自定义拦截器
  11. 下载赚钱利器之千脑网盘WordPress插件
  12. win10系统进行电脑分盘
  13. 力扣5713. 字符串中不同整数的数目
  14. CAN通信----电路图
  15. C# 之 扑克游戏 -- 21点规则介绍和代码实现
  16. 本周大新闻|华为发布BB观影眼镜,Geenee AR试穿加入AI生成玩法
  17. 计算机还原桌面的文件会不会丢失,在用系统还原后会丢失文件吗?谢谢
  18. 网络作战训练模拟仿真管理系统软件
  19. 精讲精练k-近邻算法:knn(一)
  20. [No0000CA]什么是“普瑞马法则”?以及 如何利用“普瑞马法则”,三步克服惰性...

热门文章

  1. webstorm更改scss输出路径
  2. 批量更新日期字段中的年
  3. php实现微信企业向用户付款
  4. 聊聊SwitchUserFilter的使用
  5. 关于安防与大数据不能不说的九个发展趋势
  6. mysql5.5+版本与mysql5.5之前版本部署主从的一些差异
  7. Linux服务器init 5启动图形界面,报错Retrigger failed udev events的解决方法
  8. 企业信息化快速开发平台JeeSite
  9. Socket编程(4)TCP粘包问题及解决方案
  10. Java多线程之阻塞I/O如何中断