0

このコードを使用して、ajax と jquery で検索しています。

// this is the id of the submit button
$("form#search_form input#key").keyup(function() {
    if ( $(this).val().length >=2 ){


    var url = base_url()+"welcome/search2"; // the script where you handle the form input.

    $.ajax({
           type: "POST",
           url: url,
           data: { 'key':$("#key").val() }, // serializes the form's elements.
           success: function(data)
           {
               //alert(data); // show response from the php script.
               $('#livesearch').html(data); 
           }
         });

    return false; // avoid to execute the actual submit of the form.
    }
    else $("#fonded2").hide();
});

しかし、ユーザーが速く書いているときは問題があります。ユーザーが 500 ミリ秒後に新しい文字を入力したときに検索を中断する方法はありますか

4

2 に答える 2

3
var timer;

$("form#search_form input#key").keyup(function(e) {
    if (e.which==13) return false; // avoid executing form.
    clearTimeout(timer);
    if ( this.value.length >=2 ){
        var url = base_url()+"welcome/search2";

        timer=setTimeout(function() {
            $.ajax({
                type: "POST",
                url: url,
                data: { 'key':$("#key").val() },
                success: function(data) {
                    //alert(data);
                   $('#livesearch').html(data); 
               }
           });
        }, 500);
    }else{
       $("#fonded2").hide();
    }
});
于 2012-08-01T02:14:06.260 に答える
0

おそらく、入力がぼやけるまで待つ必要があります。ユーザー名フィールドのサインアップページでぼかしイベントが呼び出されるのをGoogleが待つことを考えると、これが最善の方法だと思います。

于 2012-08-01T02:10:31.983 に答える