javascript - 无法使用 Select2 以编程方式选择选项

标签 javascript jquery asp.net-mvc jquery-select2

我有一个 Select2 工作正常附加到选择列表但是当有人输入一个新项目并且我重新绑定(bind)选择列表并尝试以编程方式选择新项目时,它拒绝显示。
还有许多其他帖子与此有关,但他们的解决方案对我不起作用。

  1. 使用 .select2("val", value)。什么也没做。
  2. 使用 .select2("data", value)。什么也没做。不确定这应该有何不同。
  3. 使用InitSelection 选项设置一个值。这会导致以下错误消息:未捕获错误:当附加到选择元素时,Select2 不允许选项“initSelection”

在将新选项添加​​到数据库后的 Ajax 成功函数中,我有以下 Javascript:

BindDishes(RestaurantID); //rebinds the select list successfully
$('#hidDishID').val = data.DishID; //populates a hidden field
var arr = '[{id: "' + data.DishID + '", text: "' + data.DishName + '"}]'; 
$("#dd").select2("data", arr);

所以在这个最新的迭代中,我尝试按照另一个建议的解决方案提供一个包含选择列表项中的 id 和文本的数组,但仍然没有任何反应。我究竟做错了什么?将 Select2 与选择列表一起使用时,这是不可能的吗?

编辑:我在创建选择列表的 MVC 中有以下行:

@Html.DropDownGroupListFor(m => m.DishID, Model.GroupedSelectList, "Select a dish", new { id="dd",style="width:470px;" })

这一定是通过从模型绑定(bind)到 DishID 引起的问题,该模型在来自服务器时最初是空白的。 DropDownGroupListFor 只是一个允许在 Select 中使用 OptionGroups 的 HTML 帮助程序,但它必须是绑定(bind)问题。这里最好的方法是什么,以不同的方式绑定(bind)或以某种方式更新模型的 DishID,不确定最佳实践?

最佳答案

var $example = $(".js-example-programmatic").select2();
$example.val("CA").trigger("change"); 

关于javascript - 无法使用 Select2 以编程方式选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128770/

相关文章:

javascript - 在 mongodb 中实现分页

javascript - jquery 在 switch 案例中使用范围?

JavaScript - 将字符串变量转换为数学表达式

java - 在服务器端运行 javascript

javascript - Jquery 验证 div

c# - 将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围 - 未使用 DateTime2

javascript - 如何在 HighCharts 中设置 fillArea 偏移量

javascript - 当 Bootstrap 模式关闭时,我如何知道单击了哪个按钮?

C#、Winforms 和 LINQ to SQL.. Datacontext 生命周期?

c# - 在 MVC 6 中将 View 渲染为字符串