input缓存中选值事件触发

现在浏览器都会缓存一些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‘).oninput=function(){alert(this.value)}

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

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

时间: 2024-09-30 07:14:42

input缓存中选值事件触发的相关文章

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

实现一个依据iframe页面返回充值卡类型不同,安排不同的input部件. 点击选择弹出一个iframe.点击充值卡数据行.返回1.充值卡类型.2.充值卡id(用的UUID).3.充值卡号(字符串). 遇到的问题是当iframe选择充值卡时,无法获取parent页面input部件value值的change事件. parent页js $("#id_card_type").change(function(){ //事件无法捕获 }); parent页form <form id=&qu

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

实现一个根据iframe页面返回充值卡类型不同,安排不同的input部件. 点击选择弹出一个iframe,点击充值卡数据行,返回1.充值卡类型.2.充值卡id(用的UUID).3.充值卡号(字符串). 遇到的问题是当iframe选择充值卡时,无法获取parent页面input部件value值的change事件. parent页js $("#id_card_type").change(function(){ //事件无法捕获 }); parent页form <form id=&qu

以input=file方式,获取文件时,在IE下8无法通过某个按钮click事件间接触发input=file的change事件

最近在项目中遇到了许多上传问题,公司内部的组件,通过form上传,需要使用input=file触发选择文件, 因为input=file在各个浏览器中显示的样式是不同的,谷歌,火狐,IE都有所不同,而且不太美观,所以为了解决 这一个问题,一开始采用了隐藏input=file 然后通过一个显示的button间接触发input=file的click事件如下 <input type="file" id="upload" style="display:none

angularjs $broadcast $emit $on 事件触发controller间的值传递

使用angularjs,发现controller间的值传递,比较麻烦的,以后几篇文章会陆续说几种方法. 一,angularjs $broadcast $emit $on的处理思想 在一个controller里面通过事件触发一个方法,在方法里面通过$broadcast或$emit来定义一个变量,在父,子controller里面通过$on来获取. 二,实例说明angularjs $broadcast $emit $on的用法 1,html代码 查看复制打印? <div ng-controller=&qu

input 的value值改变事件监听

<input id="d1" name="name"/> $("#d1").bind('input propertychange',function(){alert("dddddd");}); 如上所示,对input绑定input propertychange事件后,可监听到键盘输入值.鼠标黏贴值这两种值改变的事件.问题来了----------我现在是通过js代码来改变了input的value值,上面代码就监听不到

checking在浏览器为应用缓存查找更新时触发

离线的Web应用,就是在设备不能上网的时候还能运行应用.html5把离线应用作为重点,主要是开发人员的心愿.离线应用的开发的步骤有:首先应该知道设备是否能够上网;然后应该还能访问一定的资源(如图像.CSS.javascript等),只有这样才能正常工作. 离线检测 想要开发离线Web应用第一步就得知道用户的设备的上网情况.HTML5为此定义了一个navigator.onLine属性,这个属性值为true的时候表示设备能够上网,表示false的时候表示设备不能上网.这个属性的关键在于浏览器必须知道

动态获取input内容文本 - js事件

要想通过事件实时获取文本框文本,一开始是想到下面的方法,但实际效果都存在一定的缺点. 通过change/blur事件获取 change事件只有在选中点击或者失焦的时候,才能够触发. blur事件则是只能在失焦才能除法. 我最初选择的是change事件,而这样显然是不符合实时获取的要求的. 然后在查找文档的时候,发现了input事件,这里的input指的是事件的名字.mdn对于input事件的解释是: 每当<input>元素的value值改变时,都会触发这个事件. 这个显然很适合我们的需求,先写

用Javascript清空(重置)文件类型的INPUT元素的值

之前在StackOverflow回答了这个问题,现在整理到Blog里. 因为安全限制,脚本是不能随意设置其value值的,所以并不能像其它表单输入域那样用属性来设置使其重置. 重置一个文件域的值,归纳起来主要有 3 种方法. 本文分析这三种方法的浏览器兼容性以及优缺点,并给出一个比较完美的综合方案的代码和Demo. 重置文件域的三种方法: 设置value属性为空. 对于IE11以上和其它较新的非IE的现代浏览器Chrome/Firefox/Opera...有效. 克隆或创建一个新的文件输入元素进

C#事件触发机制

C#的事件触发机制,类似于c++的回调函数机制 我先简单说一下,委托和事件的实质,后期再重开一篇博文来详细说 委托:指向方法的指针,类似于C的函数指针 事件:是一个可以存放0个或多个方法指针的数据结构  .......... 在一次编译后会为其生成一个类等等的就以后另开博文说了 看看触发机制 方便理解,来个通俗一点的图 事件触发源类 class cclass { private char i; public delegate void ichanged(cclass s); public eve