javascript - on() 观察输入的变化

标签 javascript jquery

$("#myTextBox").on("change paste keyup", function() {
   alert($(this).val()); 
});

如何比较用户输入的新值和输入中已存在的当前值?

最佳答案

这是您可以使用闭包的地方:

  $("#myTextBox").on("change paste keyup", (function() {
    var previousValue = $("#myTextBox").val();
    return function() {
        var newValue = $(this).val();
        alert('Was ' + previousValue + " and now it's " + newValue);
        previousValue = newValue;
    };
})());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myTextBox" value="abc" />

闭包有点复杂的原因:它创建了一个名为 previousValue 的变量,该变量的生命周期比处理函数长,但只能由该处理函数访问。您保证不会与代码的其他部分发生命名冲突。

关于javascript - on() 观察输入的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34787872/

相关文章:

单击链接时无法识别 Javascript 函数

javascript - 将 Facebook 图形 API JSON 解析为 html

javascript - 删除 jQuery 对简单文本旋转的依赖

javascript - 如何检查资源是否从客户端的缓存加载?

javascript - 更新到 Bootstrap 3.2.0 - 导航标题对齐之后变得不对齐

Jquery图像加载顺序

jquery - Bootstrap 3 更新会在 Bootstrap 对话框打开或关闭时摇动 UI。我怎样才能摆脱这种行为?

javascript - 使用 Jquery 更改背景颜色(css 属性)

javascript - 将 onclick 事件上的两个或多个属性添加到数据网格行

javascript - 使用 javascript 将表格导出到 Excel 文件