Select2.js 在下拉列表中不起作用

Posted

技术标签:

【中文标题】Select2.js 在下拉列表中不起作用【英文标题】:Select2.js not working in dropdown 【发布时间】:2013-12-06 00:32:33 【问题描述】:

我正在使用 Select2.js、KnockoutJs、Durandal 2.0

var ViewModel =
    [
         id: "AL", text: "Alabama" ,
         id: "AK", text: "Alaska" ,
         id: "AZ", text: "Arizona" ,
         id: "AR", text: "Arkansas" ,
         id: "CA", text: "California" ,
         id: "CO", text: "Colorado" 
    ]
var stateQuery = function (query) 

    var states = [];
    ko.utils.arrayForEach(states, function (state) 
        if (state.text.search(new RegExp(query.term, 'i')) >= 0) 
            states.push(state);
    
    );

虽然在下拉列表中绑定它工作正常。但是如果我将 text 更改为 Text_Name 我会得到 cannot convert to upperCase strong> 未定义。

var ViewModel =
    [
         id: "AL", Text_Name: "Alabama" ,
         id: "AK", Text_Name: "Alaska" ,
         id: "AZ", Text_Name: "Arizona" ,
         id: "AR", Text_Name: "Arkansas" ,
         id: "CA", Text_Name: "California" ,
         id: "CO", Text_Name: "Colorado" 
    ]

【问题讨论】:

【参考方案1】:

这是一个 select2 约定。 See the documentation:

默认实现期望对象具有文本属性 即返回。

要更改此行为,您应该指定函数 formatResultformatSelection 并指定新的文本属性:

function format(item) 
    return item.Text_Name

如果您使用的是 Knockout 绑定处理程序:

<select data-bind="options: states, optionsValue: 'id', optionsText: 'text', value: states, select2:  formatSelection: format, formatResult: format  "></select>

【讨论】:

Hi thx Margabit 它的 worging 很好。但是搜索功能是 nt wrkng。我的html是这样的 请发布另一个关于这个新问题的问题,以便我们写出正确的答案;)

以上是关于Select2.js 在下拉列表中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

下拉列表在 asp.net 的移动视图中不起作用

CSS 下拉列表在 IE 或 Edge 中不起作用

下拉列表更改的 JQuery 在 codeigniter 中不起作用

下拉列表的 jQuery 在布局 ASP.NET MVC 5 中不起作用

jQuery html 属性在 IE 中不起作用

下拉列表在响应式jquery数据表中不起作用