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

ord*_*ary 7 javascript validation jquery

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

<form>
    <input id="test" type='text' >
    <input type="submit" value="asdf">
</form>

$('input').on("change",(function(e){
    alert("Hello");
});
Run Code Online (Sandbox Code Playgroud)

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

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

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

r04*_*43v 13

每次更改发送请求都很糟糕,在最后一次更改时延迟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);
});
Run Code Online (Sandbox Code Playgroud)


Ben*_*rey 1

$.ajax()每次触发更改事件时只需拨打电话即可!就像这样:

$(document).on('keydown','input',function(){
    $.ajax({
        // options here
    });
});
Run Code Online (Sandbox Code Playgroud)

虽然上述内容将有助于实现您想要的目标,但我必须建议,发出持续的 AJAX 请求并不是一个好的做法,因为如果您的流量很大,这可能会给服务器带来巨大的负载。您最好每隔 n 秒验证一次,或者验证客户端,或者在提交时验证......

更新

看来您不想捕捉该change事件,您想知道何时输入任何内容。结果,我更改了代码来捕获该keydown事件。只要在专注于输入的情况下按下某个键,就会触发此操作。