我有一些 jQuery 侦听器设置来侦听type="text"
字段上的表单输入。但是,当用户从自动完成下拉框中选择一个选项时(即他们之前输入的值已被记住以备将来使用),下面的侦听器不会收集该值。
这是我当前的代码:
$('#text-input').on("keyup change paste", function() {
var textInput = $(this).val();
// do something with textInput
});
以上适用于粘贴和输入,但不适用于从下拉建议列表中选择选项时。
谁能告诉我需要添加什么听众?
干杯。
我的解决方案
尝试使用autocomplete
监听器后,我发现这在我的场景中似乎不起作用,所以我添加了以下代码,灵感来自接受的答案。
var timer = 0;
$('#text-input').on("keyup change paste", function() {
if (timer != null) {
clearTimeout(timer);
timer = setTimeout(function() {
var textInput = $(this).val();
// do something with textInput
}, 1000);
}
});
这样做的额外好处是我的文本输入采用了一个 URL,然后使用它来将其他内容加载到页面中。通过设置超时,这意味着脚本不会在用户仍在键入 URL 时不断尝试加载 URL。