jquery - 捕获 Change( ) 的先前值以便将输入字段恢复为该值?

标签 jquery

用例是一个用于进行一些计算的网络应用程序表单...还有什么新功能...

通常,如果用户输入创建 NaN 条件的值,我会将该值覆盖为 0 以避免出现 NaN。这工作得很好,它让一切正常工作并防止 NaN 传播。

但从功能上来说这并不理想。理想的做法是简单地取消change()事件并恢复以前的值。中断事件没什么大不了的,但是有没有办法做到这一点,以便在不诉诸数据/绑定(bind)等的情况下恢复/维护先前的输入值?

我的推理是这样的:“change()”必须知道输入的先前值,因为change()正在对值进行前后比较以确定是否发生了更改。那么是否可以从change()中捕获之前的值呢?这就是问题所在。

最佳答案

var prevVal;
var input = $("input_selector");
input.focus(function(){
  prevVal = input.val();
}).change(function(){
  if (isNaN(input.val())) {
    input.val(prevVal);
  }
});

关于jquery - 捕获 Change( ) 的先前值以便将输入字段恢复为该值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17395541/

相关文章:

javascript - 将 JavaScript 添加到 w2ui 面板

javascript - 更改 iframe url 更改父窗口 url 阻止了具有来源的框架

jQuery 通过索引查找元素并在其后插入节点

javascript - 具有许多元素的 jQuery 动画背景

javascript - 按百分比动态更改字符串值

javascript - Firefox 不会触发点击事件

javascript - 正则表达式在 javascript 中一次又一次失败

IE 上的 jQuery 可见性选项

javascript - 使用 jQuery 的 offset() 编写脚本

javascript - 将独立参数传递给 .mouseover 函数