原生JS实时监听input框输入值的方法对比
作者:闭包旅人时间:2026-10-26 09:10:12浏览:215
本文详解原生JavaScript中实时监听input输入值的三种方式:onchange、onpropertychange和oninput。重点分析onchange需失去焦点且由用户操作触发,onpropertychange为IE专属且全属性变更触发,以及oninput作为非IE兼容方案仅响应value变化的特性,并提供HTML与JS代码示例。
原生JS实时监听input框输入值
在原生JavaScript中,实现实时监听input框输入值主要涉及oninput、onpropertychange和onchange这三个事件。
以下是oninput、onpropertychange以及onchange的具体用法解析。
1)onchange事件触发必须同时满足两个条件:
- a)当前对象的属性发生变化,且该变化是由键盘输入或鼠标操作引发的(通过脚本修改属性不会触发);
- b)当前对象失去焦点(触发onblur);
2)onpropertychange事件会在当前对象属性发生任何改变时立即触发,但该事件仅适用于Internet Explorer浏览器;
3)oninput是onpropertychange在非IE浏览器(如Firefox、Opera等)中的对应实现。其不同之处在于,它并非响应对象所有属性的变化,而仅在对象的value值发生改变时才生效。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
请输入字符:<input type="text" id='d0'/>
<hr />
你是输入的字符为: <div id='d1'></div>
<script>
var input = document.getElementById('d0')
var div = document.getElementById('d1');
input.oninput = function(){
div.innerHTML = input.value;
}
</script>
</body>
</html>原生JS中监听input[type=range]的值变化方法
<input id="density" type="range" oninput="densityInput(event)" onpropertychange="OnPropChanged(event)">//js
function OnInput (event) {
console.log(event.target.value);
}
// Internet Explorer
function OnPropChanged (event) {
if (event.propertyName.toLowerCase () == "value") {
console.log(event.srcElement.value);
}
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
相关标签:
