使用Jquery的搜索框不能自动完成

AutoComplete not working on the Search Box using Jquery

本文关键字:不能 Jquery 搜索 使用      更新时间:2023-09-26

我正在尝试在搜索文本框上获得TypeAhead功能。我有2个单选按钮的形式,如果其中一个被选中,我需要提前输入功能,以添加主列表的搜索框。

 //html
 <li> @Html.TextBox("SearchTitle") </li>
 //JavaScript
 if ($('input[name=SearchType]:checked').val() == "m") {
        var availableMasters = ["ActionScript",
                                "AppleScript",
                                "Asp"];
        $.ajax({
            cache: false,
            type: "GET",
            url: "@(Url.Action("Get", "Masters"))",
            success: function (data) {
                availableMasters = data.list;
            },
        error: function () {
            alert('No Master Available.');
        }
    });
        $("#SearchTitle").autocomplete({
            source: availableMasters
        });
    }

我的问题是,表单在ajax调用之前绑定了availableMasters,所以搜索文本框总是有静态文本数组,我在开始添加3个字段。我得到的主人在(data.list)的正确列表,但它从来没有出现在文本框。

是否有一种方法来绑定列表一旦ajax调用得到主列表?

将其封装在一个函数中,例如init,并在ajax调用成功时调用该函数。

function initSearch(){
     $("#SearchTitle").autocomplete({
         source: availableMasters
     });
}
if ($('input[name=SearchType]:checked').val() == "m") {
        var availableMasters = ["ActionScript",
                                "AppleScript",
                                "Asp"];
        $.ajax({
            cache: false,
            type: "GET",
            url: "@(Url.Action("Get", "Masters"))",
            success: function (data) {
                availableMasters = data.list;
                initSearch();
            },
        error: function () {
            alert('No Master Available.');
        }
    });
}