将项目动态添加到使用 AJAX 的 jQuery Select2 控件

2023-12-28

我有一个使用 AJAX 进行填充的 jQuery Select2 控件:

<input type="text" name="select2" id="select2" style='width:400px' value="999">

var initialSelection = { id: '999', text:"Some initial option"};

$("#select2").select2({
    placeholder: "Select Option",
    minimumInputLength: 2,
    ajax: { 
        url: "/servletToGetMyData",
        dataType: 'json',
        data: function (term, page) { return { term: term }; },
        results: function (data, page) {  return { results: data.results} }
    },
    initSelection : function(element, callback){ callback(initialSelection); },     
    escapeMarkup: function (m) { return m; }
}); 

AJAX 链接到可能选项的数据库,正如您所看到的,需要输入两个字符。

问题是,如果数据库中不存在该选项,用户可以使用对话框添加新选项。从该对话框返回后,我尝试:

var o = $("<option/>", {value: newID, text: newText});
$('#select2').append(o);
$('#select2 option[value="' + newID + '"]').prop('selected',true);
$('#select2').trigger('change');

但这不起作用。相同的代码适用于非 AJAX Select2 框。我尝试过各种替代方案,例如使用$('#select2').select2("val", newID);但它不起作用。

我什至尝试完全删除 Select2 控件。然而,$('#select2').remove()仅删除原始的 字段,但保留 Select2 控件。请注意,该页面有多个 Select2 控件,因此我无法对 Select2 控件使用类选择器,因为它会删除我需要的其他控件。

知道如何 a) 向使用 AJAX 的 Select2 控件动态添加选项;或者 b) 完全删除 Select2 控件,以便可以通过编程方式将其添加回来?或者任何其他解决方案...

Edit我发现另一个问题显示如何使用 .select2("destroy") 删除 select2 元素。这可行,但在我看来,这并不是最理想的。我更希望能够仅添加该选项,而不是销毁并重新创建 select2。


从 select2 v4 开始,这要容易得多。您可以创建一个new Option,并将其附加到select直接元素。看我的codepen http://codepen.io/alexweissman/pen/zremOV或下面的例子:

$(document).ready(function() {
    $("#state").select2({
      tags: true
    });
      
    $("#btn-add-state").on("click", function(){
      var newStateVal = $("#new-state").val();
      // Set the value, creating a new option if necessary
      if ($("#state").find("option[value=" + newStateVal + "]").length) {
        $("#state").val(newStateVal).trigger("change");
      } else { 
        // Create the DOM option that is pre-selected by default
        var newState = new Option(newStateVal, newStateVal, true, true);
        // Append it to the select
        $("#state").append(newState).trigger('change');
      } 
    });  
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>


<select id="state" class="js-example-basic-single" type="text" style="width:90%">
  <option value="AL">Alabama</option>
  <option value="WY">Wyoming</option>
</select>
<br>
<br>
<input id="new-state" type="text" />
<button type="button" id="btn-add-state">Set state value</button>

提示:尝试在文本框中输入现有值,例如“AL”或“WY”。然后尝试添加一些新值。

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

将项目动态添加到使用 AJAX 的 jQuery Select2 控件 的相关文章

  • 优雅地处理没有数据的 amcharts

    我想知道我的 dataProvider 是否为空 amCharts绘制时默认为null 我怎样才能动态地处理它 var chart AmCharts makeChart chartdiv theme none type serial dat
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 如何绑定div宽度/高度来形成字段?

    我想创建多个div我可以移动和调整大小 并绑定它们width height等到数组中的对象 因此 如果我创建六个 div 我的数组中有六个对象 每个对象都有 width height etc 我不太明白如何使用 knockout js 将输
  • Jquery:选择器找不到类?

    我正在尝试推进 Jquery autcomplete 功能 我希望 Jquery 自动完成在表中创建新行 到目前为止 这有效 但我希望 Jquery 添加一个删除按钮 因此用户可以删除他添加的项目之一 document ready func
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • Prototype 和 jQuery 一起?

    我注意到我使用的某个脚本依赖于原型 Lightbox 2 它会与 jQuery 在同一页面上一起工作吗 有没有办法确保它们不发生冲突 你可以 但你需要采取特殊步骤 http docs jquery com Using jQuery with
  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • PNG 透明度问题 - 带有黑色阴影的褪色图像 - IE 中的边框

    我使用图像旋转器在主页上显示一些图像 所有图像均为 PNG 格式 问题出在 IE 7 8 中 图像旁边有黑色阴影 我花了几个小时来解决这个问题 但仍然不知道问题出在哪里以及如何删除它 没有人有类似的问题和提示吗 如何解决 尝试使用 img
  • 如何在 jQuery 中获取 ul 列表中 li 的第一个 href 链接

    我有以下清单 ul class tabs li a href testlink php First link a li li a href testlink2 php Second link a li ul 我想获取第一个链接的 href
  • jQuery 可以在用户输入数字时添加逗号吗?

    当用户输入数字时 如何动态添加逗号 有没有一个好的数字格式化程序可以提供帮助 我必须稍后添加这些数字 所以我最终必须删除一行中的逗号 但屏幕需要显示逗号以提高可读性 运行代码片段以查看其工作情况 input number keyup fun
  • 如何以编程方式处理 JqGrid 事件?

    我正在使用JqG rid 的 ASP NET 包装器 http www trirand net demoaspnet aspx 我想以编程方式连接一些网格的处理程序events http www trirand com jqgridwiki
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • ajax4jsf死了吗?还有哪些其他适用于 JSF 的 AJAX 库?

    我目前正在使用JBoss RichFaces http www jboss org jbossrichfaces 我正在从事的项目的 JSF 组件库 一般来说 它工作得很好 特别是 ajax4jsf A4J 提供的 AJAX 支持 但我发现
  • 如何判断 jquery 对话框是否打开? [复制]

    这个问题在这里已经有答案了 寻找通用案例解决方案来确定当前是否打开任何 jquery 对话框 有多个 试过 ui dialog content dialog isOpen true ui dialog dialog isOpen true
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • Jquery 验证不能正确验证数字?

    我在使用 jquery 非侵入式验证验证数字时遇到问题 我使用的版本是 ASP NET MVC 3 jQuery 1 9 1 jQuery 用户界面 1 10 1 JQuery 验证 1 11 0 我试图验证的输入是
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 无法根据 WSO2 API Manager 中的消息中介策略调用动态端点/URL

    我正在使用 APIM 3 1 0 我需要根据标头或请求参数重定向 API 我尝试过请求参数但无法调用不同的API 我已使用以下自定义中介策略并将其添加到测试 API 但无法调用不同的 URL 每次调用 API 时 即使我将操作值作为菜单传递
  • Fancybox 在 IE 中加载 iframe 时卡住

    我在使用 fancybox 的 IE 中的 iframe 中加载 PDF 时遇到问题 当我点击链接时 我会得到 gif 加载程序 并且它会永远旋转 控制台或页面或类似内容中没有错误 所有版本的 IE 都会出现此问题 所有其他浏览器都工作正常
  • 保持用户界面最新的最佳方法是什么?

    这个问题是我的问题的改进观察数据变化的不同方式 https stackoverflow com questions 3161392 different ways of observing data changes 我的 C 应用程序中仍然有
  • 如何隐藏ng网格中的列

    这是我的代码 索引 html
  • 配置 WiX 自动设置产品版本属性?

    目前 每当我构建包时 我都必须手动增加 P roduct wxs 文件中的 Version 属性 如下所示
  • 如何找到 JavaScript 数组中包含的最大数字?

    我有一个简单的 JavaScript 数组对象 其中包含一些数字 267 306 108 有没有一个函数可以找到这个数组中最大的数字 辞职来救援 http ejohn org blog fast javascript maxmin Arra
  • 在网站中存储用户上传的文件的最佳方式是什么?

    我正在尝试创建一个网站 需要在其中存储一些用户上传的文件 如一些个人资料图片 一些 xml 文件等 那么存储这些文件的最佳方式是什么 目前 我正在服务器上为每个注册的新用户创建一个新目录 并将每个用户的文件存储在各自的目录中 但有人告诉我这
  • Jersey、Guice 和 Hibernate - EntityManager 线程安全

    我在我的应用程序中以同样的方式使用了本教程 http www benmccann com hibernate with jpa annotations and guice http www benmccann com hibernate w
  • Font Awesome 5 使用 JS+SVG 版本时显示空方块

    尝试用 Font Awesome 图标替换列表项标签上的项目符号类型 但我得到一个空方块 ul list style none testitems line height 2em testitems before font family F
  • 在 OS X 终端中构建和运行 Monodevelop 解决方案

    我想从 OS X 终端构建并运行 Monodevelop 解决方案 执行此操作的适当工具 命令是什么 我尝试跑步mdtools build从包含的目录MySolution sln 这导致 bash mdtools command not f
  • 如何查找一个字段的值与另一字段的值匹配的所有文档

    我的文档中有两个字段 具有以下映射 field a type float field b type float 如何找到具有以下值的所有文档field a匹配的是field b 禁用脚本可以实现这一点吗 基本上你需要一个脚本来完成它 即使禁
  • C++ 类型名和内部类

    我尝试用谷歌搜索这个问题 但无法找到合适的答案 任何 C 大师都可以告诉我为什么 C 要求你声明 OuterClass
  • Kafka 到 Snowflake 连接问题

    我正在尝试从本地独立 Confluence Kafka 主题连接到 Snowflake 表 我正在使用以下连接器配置ksqldb CREATE SINK CONNECTOR snowflake sink WITH name snowflak
  • Eclipse 在调试 ctrl+shift+i 时丢失了检查快捷方式

    我正在尝试恢复快捷方式 但没有成功 有一个执行检查的快捷方式 只需单击 CTRL SHIFT I 但现在我已经没有这个功能了 它似乎消失了 有想法恢复它吗 谢谢 最后我想出了如何恢复这个命令 要到达此面板 您必须转到 Windows gt
  • 比较剪贴板中的 IDataObject

    我的 WPF 应用程序检查剪贴板上的数据 看看它是否可以使用该数据 因为我根据数据设置了一些按钮来启用 禁用 通过ICommand实现 这段代码被频繁调用 确定我的应用程序是否可以处理数据的工作有时可能非常重要 因此会导致我的应用程序随机
  • 在用户输入的数组中查找值

    我试图在用户之前输入过的数组中找到任何用户输入的值 我做了以下操作来查找数组中输入的值 但似乎不知道在哪里插入循环来查找用户输入的搜索值 好的 更新 我正在寻找一种方法来查找用户之前输入的数组中输入的值 如果符合逻辑的话是这样的 好的第二次
  • 面板上的 DrawToBitmap 为空白

    因此 我编写了一个类 它存储一些测试结果信息 然后是一个向用户显示该信息的控件 我想在此类上放置一个打印函数 以全页大小绘制控件并打印它 然而它总是显示空白 该代码将面板视为控件 因为它可能是其他类型的值 我想我一定缺少一些简单的东西 vo
  • 使用 Google Admin SDK 的服务帐户创建用户?

    文档对此有点不清楚 我真的可以这样做吗 到目前为止 我看到的唯一示例来自 Google 文档 该文档显示它使用 GoogleAuthorizationCodeFlow 类来获取授权 我见过一些使用服务帐户更新和检索用户列表的示例 但没有看到
  • 如何设计 Django 的文件选择器表单按钮的样式?

    我正在尝试设计我的 Django文件上传按钮 但由于它是通过表单处理的 并且没有在模板内的 HTML 中显式编写 所以我无法像其他输入类型按钮那样直接使用 HTML 和 CSS 对其进行样式设置 我尝试在我的 CSS 类中添加forms p
  • 将项目动态添加到使用 AJAX 的 jQuery Select2 控件

    我有一个使用 AJAX 进行填充的 jQuery Select2 控件