每次表单输入字段更改时,如何发送ajax请求?

例如,有一个输入字段。 每次用户在该字段中键入一个键时,它都会发送一个AJAX请求,其中包含当前输入的任何文本,并对其执行某些操作。 我已经研究了Jquery中的更改和键盘函数,但是当我在Jsfiddle中尝试它们时,它们什么都不做。 有没有一种标准的方法来进行这种操作? 我知道它对validation和东西很常见。

$('input').on("change",(function(e){ alert("Hello"); });

我想要的效果就像这个游戏www.sporcle.com/games/g/nflteams#

您可以键入任何文本,如果它在正确答案集中,则表格将更新以显示该答案。 你永远不必提交。 你怎么认为他们达到了这个效果?

在我看来,每次用户输入密钥时,他们必须查询数据库,看看它是否是正确的答案。 如果是,他们更新表格以显示答案。 有什么其他方法可以做到这一点?

每次更改发送请求都很糟糕,在最后一次更改时延迟ajax

 var changeTimer = false; $("your inputs").on("your change event",function(){ if(changeTimer !== false) clearTimeout(changeTimer); changeTimer = setTimeout(function(){ /* your ajax here */ changeTimer = false; },300); }); 

我可能会做类似的事情。 你必须添加一些额外的代码来处理下拉列表,但这个想法是一样的。

 $('form input').keyup(function () { $.ajax({ type: "POST", url: url, data: data, success: success, dataType: dataType }); }); 

每次触发change事件时,只需调用$.ajax() ! 像这样:

 $(document).on('keydown','input',function(){ $.ajax({ // options here }); }); 

虽然上述内容将有助于实现您的目标,但我必须告知,启动常量AJAX请求并不是一个好习惯,因为如果您有大量流量,这会给服务器带来巨大负担。 你最好每n秒validation一次,或者validation客户端,或者在提交时validation……

UPDATE

您似乎不想捕捉change事件,您想知道何时输入任何内容。 结果,我已经改变了我的代码以捕获keydown事件。 只要按下键同时聚焦在输入上,这将触发。

 $('#yourInputId').keyup (function () { $.post('http://yoururl.com', { value: $(this).val() }).done(function (data) { $('#feedbackDivId').html(data); }); });