首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select2 AJAX标签

Select2 AJAX标签
EN

Stack Overflow用户
提问于 2015-04-11 16:22:41
回答 1查看 1K关注 0票数 0

我有以下JSON,通过/tags检索

代码语言:javascript
复制
[
    {
        "id": "CSS",
        "text": "CSS"
    },
    {
        "id": "HTML",
        "text": "HTML"
    },
    {
        "id": "JavaScript",
        "text": "JavaScript"
    },
    {
        "id": "jQuery",
        "text": "jQuery"
    },
    {
        "id": "MySQL",
        "text": "MySQL"
    },
    {
        "id": "PHP",
        "text": "PHP"
    }
]

我有一个<input />,它通过使用Select2来接受标记:

代码语言:javascript
复制
<input name="Tags" id="Tags" value="PHP,HTML,jQuery" />

我用这种方式附加了Select2:

代码语言:javascript
复制
$("#Tags").select2({
    tags: true,
    tokenSeparators: [",", " "],
    createSearchChoice: function(term, data) {
        if ($(data).filter(function() {
            return this.text.localeCompare(term) === 0;
        }).length === 0) {
            return {
                id: term,
                text: term
            };
        }
    },
    multiple: true,
    ajax: {
        url: '/tags',
        dataType: "json",
        data: function(term, page) {
            return {
                q: term
            };
        },
        results: function(data, page) {
            return {
                results: data
            };
        }
    }
});

问题

  1. 当我加载页面时,默认值就会消失。
  2. Select2向/tags发出请求,但它不加载标记。

控制台中也没有错误。我使用的是来自CDN的Select2 3.5.2。我哪里出问题了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-11 19:26:57

我用过这个。看上去像是黑客或是工作人员。

代码语言:javascript
复制
$("#Tags").select2({
    tags: true,
    multiple: true
});
$.getJSON("/tags", function (data) {
    if (data.length > 0)
        $("#Tags").select2({
            tags: data,
            multiple: true
        });
});

希望这对某人有帮助。在我得到更好的建议之前,我会保持开放的态度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29580162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档