如何检测文本框的内容已更改
2022-08-29 23:16:11
我想检测文本框的内容何时发生更改。我可以使用keyup方法,但这也会检测不生成字母的击键,如箭头键。我想到了使用keyup事件执行此操作的两种方法:
- 明确检查按下的键的 ascii 代码是否为字母\退格符\删除
- 使用闭包来记住击键之前文本框中的文本,并检查此文本是否已更改。
两者看起来都有点麻烦。
我想检测文本框的内容何时发生更改。我可以使用keyup方法,但这也会检测不生成字母的击键,如箭头键。我想到了使用keyup事件执行此操作的两种方法:
两者看起来都有点麻烦。
开始观察“输入”事件而不是“变化”。
jQuery('#some_text_box').on('input', function() {
// do your stuff
});
...这很好,很干净,但可以进一步扩展到:
jQuery('#some_text_box').on('input propertychange paste', function() {
// do your stuff
});
在 HTML/标准 JavaScript 中使用 onchange 事件。
在 jQuery 中,这是 change() 事件。例如:
$('element').change(function() { // do something } );
编辑
在阅读了一些评论之后,怎么样:
$(function() {
var content = $('#myContent').val();
$('#myContent').keyup(function() {
if ($('#myContent').val() != content) {
content = $('#myContent').val();
alert('Content has been changed');
}
});
});