`

用onpropertychange,oninput事件解决onchange事件的不足

 
阅读更多

http://www.koyoz.com/blog/?action=show&id=225

 

 

onpropertychange,oninput事件解决onchange事件的不足.

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

在IE下,可以用onpropertychange来代替onchange事件,当文本框有任何变化时,能立即触发此事件.

这样一来问题就解决了.

那其他浏览器呢,onpropertychange可是IE的专利. 接下来就是oninput事件了.

但是oninput有个诡异,必须用addEventListener的方式来绑定事件.否则无效.

好了, 以下是演示例子, 主流浏览器都没问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>on用onpropertychange,oninput事件解决onchange事件的不足 by koyoz.com</title> 
<style type="text/css"> 
*{font-size:14px;font-family:'Comic Sans MS', Verdana} 
body {margin-left:20px} 
</style> 
</head> 

<body> 
<p>使用onchange事件: </p> 
<input type="text" id="txt1" /> 
<p>使用onpropertychange/oninput事件: </p> 
<input type="text" id="txt2" /> 
<p>结果:</p> 
<input type="text" id="txt" /> 


<script type="text/javascript"> 
var $ = function(o) { 
return document.getElementById(o) 
}; 

$('txt1').onchange = function() { 
$('txt').value = this.value; 
} 

$('txt2').onpropertychange = function() { 
$('txt').value = this.value; 
} 

if (window.addEventListener) { 
$('txt2').addEventListener('input', function() {$('txt').value = this.value}, false); 
} 
</script> 
</body> 
</html>

 

分享到:
评论

相关推荐

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

    onchange在用于文本框输入框时,有一个明显的不足....但是oninput有个诡异,必须用addEventListener的方式来绑定事件.否则无效. 好了, 以下是演示例子, 主流浏览器都没问题: on用onpropertychange,oni

    oninput,onpropertychange,onchange的用法和区别

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

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

    在JavaScript中,`onchange`、`onpropertychange` 和 `oninput` 是与用户交互相关的事件,它们各自有特定的触发条件,特别是在处理表单元素的键盘输入和JavaScript动态赋值时。以下是对这三个事件的详细解释: 1. `...

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

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

    兼容Firefox和IE的onpropertychange事件oninput

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

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

    文章提到,IE9以下版本不支持oninput事件,可以使用onpropertychange作为替代方案。 文中还包含了一些关于如何在实际项目中应用这些监听事件的示例代码。例如,演示了如何利用oninput事件监听输入框的实时输入,并...

    input标签内容改变的触发事件介绍

    1. onchange事件与onpropertychange事件的区别: onchange事件在内容改变(两次内容有可能相等)且失去焦点时触发...onpropertychange事件是任何属性改变都会触发,而oninput却只在value改变时触发,oninput要通过addEv

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

    结合上述知识点,我们可以编写一个示例代码,该代码不仅可以在非 IE 浏览器中使用 `oninput` 事件,还能在 IE 浏览器中使用 `onpropertychange` 事件。这样就可以为不同的浏览器用户提供一致的体验: ```html &lt;!...

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

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

    js onpropertychange输入框 事件获取属性

    当一个HTML元素的属性改变的时候,都能通过onpropertychange来捕获。例如&lt; input name=”text1″ id=”text1″ /&gt;对象的value属性被页面的脚本修改的...firefox的事件oninput,效果和IE的onproperchange相同。

    js监听表单value的修改同步问题,跨浏览器支持.docx

    然后,开发者注意到`oninput`事件,网上普遍认为在Firefox中`oninput`与IE的`onpropertychange`效果相同,但实际上并不完全一致。`oninput`事件仅在用户直接输入导致value值变化时触发,而通过JavaScript改变value值...

    捕获input文本框内容改变事件的js代码

    3. **使用oninput事件**:oninput事件提供了最佳的用户体验,它在用户输入的当下立即触发。适用于需要实时响应输入内容的场景。 4. **使用onpropertychange事件(已废弃)**:在旧版IE浏览器中,onpropertychange...

    javascript 学习笔记(onchange等)

    本篇“JavaScript学习笔记”针对JavaScript中一些实用的技巧进行了总结,特别是在事件监听以及属性获取方面,涵盖了onchange、onpropertychange、oninput等事件以及button标签的type属性、jQuery处理href属性兼容性...

    深入理解html表单输入监听

    onpropertychange事件是主要在IE浏览器中使用的事件,它的效果与oninput相似,但是其适用性仅限于IE浏览器。由于跨浏览器兼容性问题,使用onpropertychange事件的代码可能在非IE浏览器中无法正常工作。此外,...

    file控件选择上传文件确定后触发的js事件是哪个

    此外,开发者还可以使用oninput事件作为备选方案,但在使用时需要注意其与onchange事件触发时机的差异。随着Web技术的不断进步,新的API和方法将不断涌现,开发者需要不断学习并掌握这些新知识,以保持开发效率和...

Global site tag (gtag.js) - Google Analytics