在 Select2 标签文本区域中创建新标签

2024-05-24

我有一个输入(文本区域),其中应用了 Select2 的标签。因此,当用户输入我的数据库中存在的项目名称时,它会显示匹配项目的列表,用户可以选择一个项目并创建一个标签。

这是到目前为止我的基本标签功能的代码:

$('#usualSuppliers').select2({
        placeholder: "Usual suppliers...",
        minimumInputLength: 1,
        multiple: true,
        id: function(e) {
            return e.id + ":" + e.name;
        },
        ajax: {
            url: ROOT + 'Ajax',
            dataType: 'json',
            type: 'POST',
            data: function(term, page) {

                return {
                    call: 'Record->supplierHelper',
                    q: term,
                    page_limit: 10
                };
            },
            results: function(data, page) {
                return {
                    results: data.suppliers
                };
            }
        },
        formatResult: formatResult,
        formatSelection: formatSelection,
        initSelection: function(element, callback) {
            var data = [];
            $(element.val().split(",")).each(function(i) {
                var item = this.split(':');
                data.push({
                    id: item[0],
                    title: item[1]
                });
            });
            //$(element).val('');
            callback(data);
        }
    });

如果输入的文本不存在,是否可以创建新标签?最初我认为这可以通过用空格分隔来完成,但有些项目(供应商名称)中会有空格,所以这是行不通的。

我认为当没有找到匹配项时,用户需要通过按下下拉框中可能出现的按钮以某种方式“创建”标签,但我不知道如何执行此操作。

如何允许用户创建其中可能包含空格的新标签,并且仍然能够继续添加更多标签(现有标签或其他标签)?


是的,你可以做到。文档中有一个示例。看着http://ivaynberg.github.io/select2/#events http://ivaynberg.github.io/select2/#events

$("#e11_2").select2({
  createSearchChoice: function(term, data) { 

   if ($(data).filter( function() { return this.text.localeCompare(term)===0;   
         }).length===0) {
     return {id:term, text:term};
   } 

  },
  multiple: true,
  data: [{id: 0, text: 'story'},{id: 1, text: 'bug'},{id: 2, text: 'task'}]
});

您必须创建一个像 createSearchChoice 这样的函数,它返回一个带有“id”和“text”的对象。在其他情况下,如果返回未定义,则不会创建选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Select2 标签文本区域中创建新标签 的相关文章

随机推荐

  • 使用 NullPointerException 来测试 null 是一种不好的风格吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一些遵循以下模式的代码 return a b c d e 现在因为这些方法中的每一种都可以返回null 通常会对此进行测试 if a nul
  • Firebase Analytics 如何定义会话?

    Firebase Analytics 有许多有关 会话 的统计数据 例如 每个用户的会话数 和 平均会话长度 但 Firebase Analytics 到底如何定义会话呢 我会回答我的问题 Firebase Analytics 将会话定义为
  • 如何确定任务栏位于哪个屏幕

    Screen PrimaryScreen 并不总是有效 因为在多显示器设置中 用户可能会将其任务栏移动到主屏幕以外的屏幕 找到具有最小工作区域的屏幕也不起作用 因为可能存在具有不同分辨率的显示器 有什么办法可以通过任务栏定位屏幕吗 您可以使
  • 包含 WordPress 之外的 WordPress 内容

    我正在寻找构建 WordPress 网站的移动版本 并将其大部分内置于静态文件中 但我试图从运行移动网站的外部 PHP 文件内部访问 WordPress 内容 如何在不手动编写 SQL 查询的情况下访问循环或数据库 Edit 为了澄清一下
  • 从 excel/vba 生成电子邮件到 Outlook 时,我的电子邮件签名不会出现?

    您好 我使用 Ron De Bruin 的精彩网站创建了 VBA 代码 该代码可以从 Excel 文件生成向特定用户发送的电子邮件 唯一的问题是我的签名没有出现在每封电子邮件上 而且我似乎找不到如何在代码中添加它 有人可以建议吗 正如你所知
  • Azure Functions v3 /HTTP 触发函数:限制请求正文和 URL 大小

    我想看看如何限制最大请求长度 and 最大允许内容长度使用 HTTP 触发器和 Azure Functions v3 创建的 API 中的属性 使用 Net core 应用程序 3 1 我尝试过使用网络配置刚刚被忽略的文件 预期 但我不确定
  • 每个 mmap/access/munmap 两次 TLB 未命中

    for int i 0 i lt 100000 i int page mmap NULL PAGE SIZE PROT READ PROT WRITE MAP ANONYMOUS MAP PRIVATE 1 0 page 0 0 munma
  • 每个 C 或 C++ 文件都应该有一个关联的头文件吗?

    每个 C 或 cpp 文件都应该有一个头文件 h 吗 假设有以下C文件 Main C Func1 C Func2 C Func3 C where main 位于Main C 文件中 是否应该有四个头文件 Main h Func1 h Fun
  • 在 WordPress 中挂钩 AJAX

    我一直在深入研究 Javascript 和 AJAX 的世界 我非常接近 但由于某种原因 我认为我没有正确地连接到 wordpress ajax 函数 我已经仔细阅读了文档和这个 认为 99 都在那里 这个应用程序的作用是有一个项目列表 每
  • Spring Boot 如何在更新之前检查数据库中的编码密码是否与表单中的密码匹配

    我在更新方法中实现了一个方法 用于检查 UpdateForm 中给定的密码是否与数据库中的编码密码匹配 我还没有找到任何教程或解决方案 但我尝试了一些东西但没有任何效果 这是我的更新方法 RequestMapping value home
  • Delphi 2005 Web 服务问题

    我在尝试通过 Delphi 访问 Web 服务时遇到问题 我使用了 2007 版 WSDLimp 工具的 java WSDL 看起来它已正确创建了所有对象 然而 当我制作一个调用该服务的测试程序时 每个对象都是空的 如果我在 HTTPRIO
  • 渲染闭合的 Marionette 视图

    关闭的 Marionette 视图在再次渲染时不应该重新委托定义的事件 事件 modelEvents CollectionEvents 吗 似乎我必须在关闭并重新渲染视图后手动调用 delegateEvents 否则视图将无法按预期工作 h
  • Android NDK:没有规则来创建目标

    我正在尝试使用 NDK 构建一个简单的 Android 应用程序 这是我的Android mk的内容 LOCAL PATH call my dir include CLEAR VARS LOCAL LDLIBS llog LOCAL MOD
  • Python 3.10 警告

    warning PYDEVD USE CYTHON environment variable is set to NO Frame evaluator will be also disabled because it requires Cy
  • 如何在Python中计算正态分布的百分位数?

    问题陈述 随机变量 X 是 N 25 4 找到 X 的指定百分位 A 第 10 个百分位数 b 第 90 个百分位数 C 第 80 个百分位数 d 第 50 个百分位数 尝试1 My code import numpy as np impo
  • Xamarin Forms - 错误 MT2002:无法解析 UIKit.UIEdgeInsets

    我正在研究一个Xamarin Forms项目 更新后出现以下错误Xamarin Forms版本至 2 4 0 74863 Users UserName Official Projects ProjectFolder ProjectName
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • C:将 int 转换为 size_t

    转换 投射的正确方法是什么int to a size t在 32 位和 64 位 linux 平台上的 C99 中 Example int hash void key int main int argc char argv size t s
  • Java特殊字符替换

    我有一段文字 Csukl si roham gy t rheti a sv deket annyit emlegetikmostans g ism t a sv d modellt Magyarorsz gon 在原始文本中根本没有换行符
  • 在 Select2 标签文本区域中创建新标签

    我有一个输入 文本区域 其中应用了 Select2 的标签 因此 当用户输入我的数据库中存在的项目名称时 它会显示匹配项目的列表 用户可以选择一个项目并创建一个标签 这是到目前为止我的基本标签功能的代码 usualSuppliers sel