`
xuedong
  • 浏览: 300392 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

onchange,onpropertychange,oninput键盘输入和js赋值时区别

阅读更多

最近项目中需要用到文本框中值改变时触发某个事件,第一反应就是onchange事件,但是测试发现如果是用js赋值的话,是不会触发onchange事件的,后来在网上找了一下,都说是在ie浏览器中可以用onpropertychange事件,在火狐中使用oninput事件。说是这两个事件是一个效果,很多人没测试就在那转载。哎……

接下来我把测试过的跟大家分享下。

onchange事件是在键盘输入,失去焦点时候如果值改变就触发该事件(ie和火狐效果一样)。

onchange事件用js赋值时不会触发。

在ie浏览器中(本人是ie8,别的ie版本没测试)。

onpropertychange只要值改变都会触发,无论是键盘输入还是js赋值改变都会触发

oninput在ie中无效。

在火狐浏览器中

onpropertychange在火狐中无效。

oninput键盘输入时,只要值改变就触发(不管是否已经失去焦点),onchange是失去焦点时才会触发。

oninput事件js赋值是不会触发该事件的

 

文采不行,大家将就看,能理解意思就行,呵呵。

接下来把测试代码分享给大家。

 

 <input type="text" id="test1" onchange="testChange();" />
 <input type="text" id="test2" onpropertychange="testOnpropertychange();"/>

<input type="text" id="test3" oninput="testOninput();"/>

 <input type="button" value="改变文本框值" onclick="changeText();">

 

 

function testChange(){
    	alert('cnange');
}
function testOnpropertychange(){
    	alert('onpropertychange');
}
function testOninput(){
    	alert('oninput');
}
function changeText(){
    	document.getElementById("test1").value='文本框值已经改变';
    	document.getElementById("test2").value='文本框值已经改变';
    	document.getElementById("test3").value='文本框值已经改变';
}

 

 

 

有什么不对的地方希望大家指正。

 

1
2
分享到:
评论

相关推荐

    oninput,onpropertychange,onchange的用法和区别

    在 Web 开发中,了解 oninput、onpropertychange、onchange 三个事件的用法和区别非常重要,这三个事件都是用于检测用户输入的变化,但它们之间存在着一些关键的差异。 首先,让我们来了解 onchange 事件。当 ...

    js监听输入框值的即时变化onpropertychange、oninput.docx

    JavaScript 监听输入框值的即时变化 ...监听输入框值的即时变化可以使用onpropertychange 事件或oninput 事件来实现,但是需要注意浏览器的差异性问题,使用不同的事件和注册方法来适应不同的浏览器类型。

    javascript开发中使用onpropertychange,oninput事件解决onchange事件的不足

    onchange在用于文本框输入框时,有一个明显的不足. 事件不会随着文字的输入而触发,而是等到文本框失去焦点(onblur)时才会触发. 也就是没有即时性! 在IE下,可以用onpropertychange来代替onchange事件,当文本框有任何...

    onchange和onpropertychange

    2. 触发条件:onchange只在元素失去焦点且值改变时触发,onpropertychange则在任何属性变化时触发,包括JavaScript对象属性。 3. 应用场景:onchange更适合于表单验证和实时反馈,onpropertychange常用于跟踪元素或...

    兼容Firefox和IE的onpropertychange事件oninput

    在JavaScript中,处理DOM元素状态变化的事件有多种,其中包括`onpropertychange`、`onchange`和`oninput`。这些事件在不同浏览器中有着不同的表现和兼容性,尤其是在Internet Explorer (IE) 和 Firefox之间。 `...

    js中的onchange和onpropertychange (onchange无效的解决方法)

    在JavaScript中,`onchange` 和 `onpropertychange` 是两个不同的事件处理方式,它们各自在特定场景下有着不同的用途。本文将详细讲解这两个事件的区别以及如何解决 `onchange` 事件在某些情况下的无效问题。 `...

    jQuery/JS监听input输入框值变化实例

    与onchange不同,oninput事件在用户输入时就会触发,即输入框的值发生变化的那一刻就会触发,非常适合需要实时反馈输入情况的场景。oninput事件在大多数现代浏览器中都得到支持,包括Firefox, Google Chrome, Opera,...

    js监听输入框值的即时变化onpropertychange、oninput

    要实现这些功能,JavaScript 提供了几个事件监听器,其中最常用的是 `onpropertychange` 和 `oninput`。 ### onpropertychange 事件 `onpropertychange` 是 Internet Explorer 浏览器特有的事件,当一个 HTML 元素...

    js触发onchange事件的方法说明

    但是如果在js代码中改变一个textbox的value,而不是通过键盘输入改变一个textbox值的话,是不会出发onchange事件的。 那么,如何在js代码模式通过代码触发textbox控件的onchange事件呢,经过查阅资料,发现js提供了...

    用JS控制INPUT输入内容

    ### 使用JavaScript控制INPUT输入内容详解 #### 一、概述 在网页开发中,为了提高用户体验并确保数据的有效性,我们经常需要对用户输入的数据进行控制和验证。通过使用JavaScript(简称JS),我们可以轻松地实现这...

    JS中onpropertychange和onchange事件区别小结

    onpropertychange和onchange都不管文本框中的实际值有没有变,只要有改的相应操作就可能触发。有时当上面两时间都不能满足需求时,可以考虑只用onblur。 还有一点要注意到,当onblur和onchange事件一起用时,onblur...

    easyui-textbox和easyui-combobox的onchange事件响应实例

    在 EasyUI 中,`onchange` 事件同样适用于 `easyui-textbox` 和 `easyui-combobox`,可以用来监听用户在这些组件上的操作,例如输入或选择值后进行相应的处理。 以下是一个基本的 `onchange` 事件响应实例: ```...

    input只能输入数字英文字母汉字

    根据提供的文件信息,本文将详细解释如何通过JavaScript代码限制HTML中的`&lt;input&gt;`元素只接收数字、英文字符以及汉字输入。这些技术对于确保用户输入的数据符合预期格式非常有用,在多种应用场景下都非常重要。 ###...

    JS虚拟键盘--VirtualKeyboard.371

    **JS虚拟键盘——VirtualKeyboard 3.7.1** 在网页开发中,有时为了提高用户交互体验或出于安全考虑(例如防止键盘记录器),开发者会选择使用JavaScript实现虚拟键盘。VirtualKeyboard 3.7.1是一款功能强大的jQuery...

    react-debounce-input:React组件以去抖动的onChange呈现Input

    React反跳输入 React组件使用去抖动的onChange呈现Input,Textarea或其他元素。 可用作&lt;input type="text" /&gt;或&lt;textarea /&gt;替代演示版Codepen示范安装NPM npm install --save react-debounce-input纱...

Global site tag (gtag.js) - Google Analytics