【发布时间】:2011-09-18 09:14:17
【问题描述】:
我有一个form_tag,它将用户的搜索远程提交给 Rails 控制器方法,该方法以 JS 格式返回结果。
如何自动提交此表单:
- 当用户输入至少 2 个字符时
- 当用户暂停至少 1 秒时?
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby-on-rails-3 search
我有一个form_tag,它将用户的搜索远程提交给 Rails 控制器方法,该方法以 JS 格式返回结果。
如何自动提交此表单:
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby-on-rails-3 search
使用 jQuery 将按键处理程序绑定到输入。在回调中,使用setTimeout 启动一个计时器,在一秒钟后提交表单,并保留setTimeout 返回给您的计时器ID。如果您在触发按键回调时有非空计时器 ID,请使用 clearTimeout 停止计时器并将计时器 ID 设置为空;如果此时它们也有两个字符,则(再次)启动计时器并(再次)存储计时器 ID。
所以,您在按键处理程序中有一个过程,如下所示:
clearTimeout,清空计时器 ID,然后继续。setTimeout 启动计时器并存储计时器ID,附加到计时器的函数将提交表单。【讨论】:
我认为@mu 的回答很棒,但我想花点时间推荐一个自动完成输入字段。我目前正在自己维护一个,它被称为Better Autocomplete。它可以处理服务器的响应,不管它返回什么数据。其他更广泛的脚本是 jQuery UI 和 another third party jQuery plugin。
【讨论】: