在输入数据输入字段时提交延迟表单

我有一个简单的表单,我需要在输入文本时自动提交。

我可以使用onChange或onKeyUp而没有最好的结果。

HTML是:

和jQuery

 jQuery("#fusionSearchForm").keyup(function() { this.submit(); }); 

每次输入字符时都会提交。 我更愿意这样做 – 提交之前有一个延迟,所以你可以完成你的输入 – 焦点停留在输入字段准备好提交后输入(如果重新加载)

有什么方法可以延迟form.submit(),以便用户可以在提交表单之前完成输入?

(更新代码以更“jQuery”的方式提交)

BR。 安德斯

这应该工作。 在没有输入500ms的情况下提交表单

 var timerid; jQuery("#fusionSearchForm").keyup(function() { var form = this; clearTimeout(timerid); timerid = setTimeout(function() { form.submit(); }, 500); }); 

这是一个坏主意。 您不希望规避人们对表单输入所期望的控制。 如果您不想要提交按钮,那么至少等待提交,直到您捕获“输入”。

除了用户心灵阅读设备之外,您怎么能知道用户何时完成打字,除非您正在寻找他们输入“return”或“enter”? 用户不会知道他们应该暂停片刻让表单在超时时间提交,或者他们需要快速在500MS超时之前输入搜索。

见: 这个问题

如果你想在任何提交后立即开始返回结果,你可以做某种ajax自动完成。

自动完成http://img9.imageshack.us/img9/5526/autocompletegoogle.png

这是一个在输入上提交的jQuery示例:

  $("input").keypress(function(e) { switch (e.keyCode) { case 13: $("#formid").submit(); return false; default: return true; } });