如果没有结果,如何停止keyup ajax调用?

我正在使用.ajax呼叫进行键盘填充自动填充搜索。当我输入3个以上的字符时,它将开始发送呼叫。我想在没有更多结果时停止更多的Ajax调用,因此用户每次写一个字符时都可以继续填充输入而无需新的调用。有人可以帮忙吗?


$(document).ready(function () {

    $("#search-name").keyup(function () {

        var input = $("#search-name").val();

        if (input.length > 3) {

            $.ajax({

                type: "POST",

                url: "inc/autofill_name.php",

                data: 'keyword=' + $(this).val(),

                beforeSend: function () {

                    $("#search-name").css("background", "#FFF");

                },

                success: function (data) {

                    $("#suggesstion-box").show();

                    $("#suggesstion-box").html(data);

                    $("#search-name").css("background", "#FFF");

                }

            });

        }

    });

});


function selectName(val) {

    $("#search-name").val(val);

    $("#suggesstion-box").hide();

}

PHP代码已添加:


if(!empty($_POST['keyword'])) {


    $keyword = $_POST["keyword"]; 

    $query ='SELECT * FROM users WHERE name like ' . quote_smart($keyword,1). ' GROUP BY name ORDER BY name LIMIT 30';


    $results = mysqli_query($mysqli, $query);   

    if(!empty($results)) {


        echo '<ul id="user-list">';


        foreach($results as $user) {

            $username = htmlspecialchars(''.$user["name"].'', ENT_QUOTES);


            echo '<li onClick="selectName(\''.$username.'\')">'.$user['name'].'</li>';

        } 

        echo '</ul>';

    } 


}


千万里不及你
浏览 157回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript