eli*_*ezr 15 javascript jquery list selectize.js
我有一个从WebService提供的对象数组(列表的顺序很重要).我将JSON对象加载到Selectize控件中,但它重新排序列表而不使用对象的顺序.
这是当前问题的关联.
$('#testSelect').selectize({
    maxItems: 1,
    valueField: 'Id',
    labelField: 'Descripcion',
    searchField: 'Descripcion',
    options: data
});
Run Code Online (Sandbox Code Playgroud)
在这里小提琴:http://jsfiddle.net/LYYab/
我已禁用'sortField'但它不起作用.
任何帮助将不胜感激.
谢谢.
mrt*_*mrt 13
你sortField可能看起来像这样:
sortField: [{field: 'Descripcion', direction: 'desc'}, {field: '$score'}]
Run Code Online (Sandbox Code Playgroud)
确保overriden sortField包含特殊$score字段.否则,根据文档,它将被添加到所有其他字段的前面,从而有效地覆盖提供的订单.
出于某种原因,我认为在将数据传递给Selectize之前,您无法访问数据.如果这样做,您只需添加排序索引:
var currentSortId = 0;    
$.each(data, function(i, v) { 
    currentSortId = currentSortId + 1; // First ID is 1!
    v.sId = currentSortId;
});
Run Code Online (Sandbox Code Playgroud)
然后在Selectize选项中引用它sortField: 'sId'.
在这里小提琴
当然,只有在文本框中输入某人之后才会有效,然后该顺序基于所输入文本的"最佳匹配".如果您必须在有人打字时保留订单,则需要定义自己的score功能 - 您需要一个返回功能的功能.内部函数采用项目和当前查询,sId如果项目匹配则需要返回以保留顺序,否则返回0.
参见score下回调中的文档.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           7933 次  |  
        
|   最近记录:  |