【发布时间】:2011-05-12 07:57:30
【问题描述】:
我想在用户输入完文本框后触发 ajax 请求。我不希望它在每次用户输入字母时都运行该函数,因为这会导致大量 ajax 请求,但我也不希望他们必须点击 enter 按钮。
有没有办法让我可以检测到用户何时完成输入然后执行 ajax 请求?
在这里使用 jQuery! 戴夫
【问题讨论】:
-
我认为您需要为我们定义“完成输入”。
-
虽然@Surreal Dreams 的回答满足了您的大部分要求,但如果用户在指定超时后再次开始输入,则会向服务器发送多个请求。请参阅下面的答案,它将每个 XHR 请求存储在一个变量中,并在启动一个新请求之前取消它。这实际上是 Google 在他们的 Instant 搜索中所做的。
-
选择的答案不正确有几个原因: 1. 它总是在 5 秒后触发,即使用户正在输入。 2. 它不会等到用户按要求完成输入。 3. 如上面@Marko 所述,它会触发多个请求。请参阅下面的更正答案。
-
模糊呢?我猜当输入元素失去焦点时,用户肯定已经完成了输入。
-
一个简单的谷歌搜索就能得到简单的答案:schier.co/blog/2014/12/08/…
标签: javascript jquery keyboard