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

也许您应该等到输入模糊。我想这是考虑到谷歌等待在他们的用户名字段的注册页面上调用模糊事件的最佳方式。

于 2012-08-01T02:10:31.983 回答