动态监听输入框值的变化

一、键盘事件

1.onkeydown
onkeydown 事件会在用户按下一个键盘按键时发生。
2.onkeypress
onkeypress 事件会在键盘按键被按下并释放一个键时发生。
onkeypress 事件在所有浏览器中不能触发所有按键(例如:ALT, CTRL, SHIFT, ESC) 。如果只对用户是否已经按下一个按键检测, 可以使用 onkeydown 取代, onkeydown被所有按键触发。
onkeypress 属性在用户(在键盘上)按键时触发。
提示:相对于 onkeypress 事件的事件次序:
onkeydown onkeypress onkeyup
3.onkeyup
nkeyup 事件会在键盘按键被松开时发生。

以上事件是键盘事件,但是当使用onkeydown、onkeypress、onkeyup作为监听事件时,会发现一些复制粘贴等操作用不了。这时候我们需要更专业的解决方案:HTML5标准事件oninput、onchange和IE专属的事件properchange。

二、输入框事件

1.oninput&onchange:
oninput和onchange都是事件对象,当输入框的值发生改变时触发该事件。不同的是,oninput是在值改变时立即触发,而onchange是在值改变后失去焦点才触发,并且可以用在非输入框中,如:select等。
2.propertychange:
功能同oninput,用以替代oninput在IE9以下的不兼容性。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onChange()与propertychange()</title>
</head>
<body>
    <h1>onChange():相应的值改变且在失去焦点后才会触发</h1>
    <input type="text" placeholder="onchangge事件" id="onchangge">
    <br>
    <h1>propertychange():相应的值改变就会触发,但是只对ie有效</h1>
    <input type="text" placeholder="propertychange事件" id="propertychange">
</body>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
    $('#onchangge').change(function () {
        console.log('我被触发了1');
    })
    $('#propertychange').bind('input propertychange', function() {
        console.log('我被触发了2');
    });
</script>
</html>

3.output:是h5的标签,IE系列浏览不兼容,主要用于计算输出。

<!DOCTYPE html>
<html>
<body>

<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
<input type="range" id="a" value="50">100
+<input type="number" id="b" value="50">
=<output name="x" for="a b"></output>
</form>

<p><b>注释:</b>Internet Explorer 不支持 <output> 标签。</p>

</body>
</html>
    原文作者:键盘上的眼泪
    原文地址: https://segmentfault.com/a/1190000015164270
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞