具有初始值OnFocus的自动完成搜索框

时间:2019-11-15 14:03:32

标签: javascript ajax jquery-ui-autocomplete

我在www.swimstats.net上集成了以下自动完成功能:

    $("#athleteName1").autocomplete({
        minLength: 3,
        delay: 300,
        source: function (request, response) {
            $.ajax({
                type: "POST",
                url: "/query_athletes",
                data: { first: $('#athleteName1').val() },
                success: response,
            });
        }
    }).focus(function () {
        console.log('Populate');        
        });

我正在寻找一种解决方案,当输入字段#athleteName1获得焦点时,可以为用户提供多达5个先前选择的值。 Aspired "OnFocus" Behavior 。这样做的好处是,用户不必再次搜索以前搜索过的运动员。

但是,一旦用户开始输入,自动完成功能应再次接管,而先前选择的值将消失。

有什么想法如何构建一个好的,干净的解决方案来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

不确定这是否是最优雅的方法,但确实可以做到:

    $("#athleteName1").autocomplete({
        minLength: 0,
        delay: 300,
        source: function (request, response) {
            if ($( "#athleteName1" ).val().length == 0) {
                response(['banana','apple', 'orange']);
                return;
            }
            $.ajax({
                type: "POST",
                url: "/query_athletes",
                data: { first: $('#athleteName1').val() },
                success: response,
            });
        },
    }).focus(function () {
        if ($( "#athleteName1" ).val().length == 0) {
            $( "#athleteName1" ).autocomplete("search");
            return;
        }
    });