jQuery中断事件(等待一段时间)

时间:2012-08-01 01:49:56

标签: jquery ajax

我正在使用此代码通过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();
});

但是当用户快速写时会出现问题。 当用户在500ms后输入一个新的字母时,有没有办法中断搜索

2 个答案:

答案 0 :(得分: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();
    }
});

答案 1 :(得分:0)

也许你应该等到输入模糊。我想这是在用户名字段的注册页面上考虑Google waits for the blur event to be called的最佳方式。