【问题标题】:How do you initialize jquery select2 items when you are in "tagging" mode?当您处于“标记”模式时,如何初始化 jquery select2 项?
【发布时间】:2023-03-09 05:43:01
【问题描述】:

我想弄清楚当我处于标记模式时如何初始化a jquery select2 item(因为我想允许用户输入新项目:

我看到了这个例子:

 $("#e12").select2({tags:["red", "green", "blue"]});

效果很好,但我需要用一些已经添加的条目来实例化它。

但如果我想在页面加载时使用一些现有项目进行初始化,我尝试这样做:

   var existingEmailAddresses= ["joe@abc.com","bill@abc.com"];

   $("#e12").select2({
            width: "600px",
            multiple: true,
            tags:["A", "B", "C"],
            initSelection: function (element, callback) {
                callback(existingEmailAddresses);
            }
        });

但这似乎不起作用。

在使用标记模式时如何初始化输入?

编辑

我还想看看是否有任何钩子来验证添加的新标签。就我而言,我想确保它们是有效的电子邮件地址。

【问题讨论】:

    标签: jquery tags jquery-select2 tagging


    【解决方案1】:

    试试

    var existingEmailAddresses = ["joe@abc.com", "bill@abc.com"];
    
    $("#e12").val(existingEmailAddresses).select2({
        width: "600px",
        multiple: true,
        tags: ["A", "B", "C"]
    });
    

    演示:Fiddle

    【讨论】:

    • 感谢您的回答。我会接受你的回答,但我有一个快速跟进(我也更新了问题)。您知道是否支持验证新标签。例如,在一种情况下,人们正在输入电子邮件地址,我想确保创建的任何新标签都是有效的电子邮件地址
    • 感谢 jsfiddle。我的一个问题是该事件是否会影响所有 select2 项目而不是这个特定的项目(因为我在页面上有很多项目,只希望这适用于这个特定的项目)
    • @leora no...我们将处理程序绑定到单个 select2 元素,因此它只会影响该元素
    • 啊,有道理(只是被名字弄糊涂了)。 .
    • 节省我的时间:)
    【解决方案2】:

    在 Select2 版本 4.x 中,这发生了变化。 Select2 被应用于一个“选择”标签而不是使用 initSelection 方法,它使用一个数据适配器。更多信息在这里https://select2.github.io/announcements-4.0.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-28
      • 2016-01-04
      • 2015-06-18
      • 2015-08-01
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      相关资源
      最近更新 更多