javascript – 只捕捉改变输入的按键?

前端之家收集整理的这篇文章主要介绍了javascript – 只捕捉改变输入的按键?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当按键更改文本框的输入时,我想做一些事情.我认为按键事件将是最好的,但如何知道是否引起了变化?我需要过滤出像按下箭头键或修饰符的东西…我不认为硬编码所有的值是最好的方法.

那么该怎么办呢?

解决方法

在大多数浏览器中,您可以将 HTML5输入事件用于文本类型< input>内容
$("#testBox").on("input",function() {
    alert("Value changed!");
});

这在IE< 9,但有一个解决方法:propertychange事件.

$("#testBox").on("propertychange",function(e) {
    if (e.originalEvent.propertyName == "value") {
        alert("Value changed!");
    }
});

IE 9支持两者,所以在那个浏览器中,最好更喜欢基于标准的输入事件.这样可以方便地触发,所以我们可以在第一次输入触发时删除属性更改的处理程序.

把它放在一起(jsFiddle):

var propertyChangeUnbound = false;
$("#testBox").on("propertychange",function(e) {
    if (e.originalEvent.propertyName == "value") {
        alert("Value changed!");
    }
});

$("#testBox").on("input",function() {
    if (!propertyChangeUnbound) {
        $("#testBox").unbind("propertychange");
        propertyChangeUnbound = true;
    }
    alert("Value changed!");
});

猜你在找的JavaScript相关文章