【问题标题】:Ajax Jquery object not working like javascript's objectAjax Jquery 对象不像 javascript 的对象那样工作
【发布时间】:2017-08-23 05:08:15
【问题描述】:

我正在使用 typeahead JS 在我的控件中设置 typeaheads。

输入类对象数组的代码如下:

        var companylist2 = [
            { word: "Alabama" },
            { word: "Alaska" },
            { word: "Arizona" },
            { word: "Arkansas" },
            { word: "California" },
            { word: "Colorado" }
        ];


        // Get Company Name Typeahead
        var states = new Bloodhound({
            datumTokenizer: function (d) {
                return Bloodhound.tokenizers.whitespace(d.word);
            },
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            limit: 5,
            local: companylist2
        });

但是我想从后端动态设置它,所以我使用 Ajax Jquery 来填充类对象数组,如下所示:

        $(function () {
            $.ajax({
                type: "POST",
                url: "mypage.aspx/getCompanylist",
                contentType: "application/json",
                dataType: "json",
                success: function (msg) {
                    companylist = msg.d;
                    alert(companylist[0]["word"]);
                    alert(companylist[1]["word"]);
                }
            });
        });

companylist[0]["word"] 和 companylist[1]["word"] 的警报都显示我希望它显示的内容,但是当我将源更改为 JQuery 中的源时,预输入不会不工作

【问题讨论】:

标签: javascript jquery ajax typeahead.js bloodhound


【解决方案1】:

尝试在success中配置Typeahead

$(function () {
    $.ajax({
        type: "POST",
        url: "mypage.aspx/getCompanylist",
        contentType: "application/json",
        dataType: "json",
        success: function (msg) {
            companylist = msg.d;
            alert(companylist[0]["word"]);
            alert(companylist[1]["word"]);

            // Get Company Name Typeahead
            var states = new Bloodhound({
                datumTokenizer: function (d) {
                    return Bloodhound.tokenizers.whitespace(d.word);
                },
                queryTokenizer: Bloodhound.tokenizers.whitespace,
                limit: 5,
                local: companylist
            });

        }
    });
});

也许CallbackAsynchronous 有帮助。

【讨论】:

  • 将其移入并且可以正常工作..不知道为什么,但我的公司列表是在 $(function 之外启动的
  • $.ajaxsuccess 函数是一个异步回调。参见CallbackAsynchronous
猜你喜欢
  • 2012-01-07
  • 1970-01-01
  • 2015-07-07
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 2016-02-27
  • 1970-01-01
相关资源
最近更新 更多