gpt4 book ai didi

javascript - 找出按键是否改变了值

转载 作者:行者123 更新时间:2023-11-28 13:52:40 26 4
gpt4 key购买 nike

是否可以仅通过一次绑定(bind)到 keyupkeypresskeydown 来发现字段值已更改?

我的意思是 - 某些按键不会更改值(例如按向左箭头),而有些按键会更改值(例如按任何字母按钮或退格键)。

那么是否有可能知道按键导致只有一个绑定(bind)的值发生变化?

PS:是的,我意识到我可以将值保存在某处并在事件处理程序的最开始进行比较,但是有没有没有临时变量的解决方案?

最佳答案

我不这么认为。我的意思是,您可以映射您认为将保持沉默的关键代码,但该映射可能不是 100% 可靠,因为输入值可能会更改或失去焦点,具体取决于操作系统和浏览器的设置方式。

没有通过变量检测变化是否有特殊原因?这似乎是最可靠的事情,因为这也正是您需要检测的:

var input = $('input'),
val = input.val();
input.keyup(function(e) {
​​​​​​​if (val != (val = $(this).val())) {
console.log('change');
}
});​

如果你不想使用杂散变量,将其保存在data属性中怎么样?

$('input').keyup(function(e) {
​​​​​​​if ($(this).val() != $(this).data('value')) {
console.log('change');
}
$(this).data('value', $(this).val());
});​

根据您的评论进行更新

如果您不关心按键,您还可以使用 input 事件(在现代浏览器中)来检测更改:

$('input').bind('input', function() { 
console.log('changed');
});

最后一个选项是使用间隔并继续检查输入字段(这可能是最可靠的选项)。

关于javascript - 找出按键是否改变了值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9933734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com