在输入数据输入字段时提交延迟表单
我有一个简单的表单,我需要在输入文本时自动提交。
我可以使用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; } });