Selectize.js:如何对整数值的选项进行排序?

时间:2016-05-19 14:34:50

标签: javascript sorting

我有一系列选项可供选择,如下所示:

<select data-placeholder="Select #" id="my-select"></select>
var myOptions = [1, 20, 7, 30, 90, 365].map( function ( value) {
    return {
        text: value,
        value: value
    };
});  
$('#my-select').selectize({
    options: myOptions,
    create: true,
    sortField: {
        field: 'text',
        direction: 'asc'
    }
});

当我加载视图时,会出现选择框,第一次选项排序正确,但是当我添加自定义选项时,在我的情况下为100,列表不会按排序顺序正确更新。看起来列表确实得到了使用但它假设字段'text'是字符串类型而不是整数。在选择中,有没有办法在基于整数的字段上指定排序?

以下是选择框初始化时以及在向其添加自定义输入100之后选项顺序的显示方式。

INITIAL -------自定义输入后
1 ------------------ 1
7 ------------------ 100
30 ----------------- 7
90 ----------------- 30
200 ---------------- 90
365 ---------------- 200
---------------------- 365

1 个答案:

答案 0 :(得分:1)

var userAddedOption = parseInt($('#user_added_option').val(), 10); // assume its = 100
var myOptions =  [1, 7, 30, 90, 365];
myOptions.push(userAddedOption);
myOptions = myOptions.map(function(value) {
    return {
        text: value,
        value: value
    };
});
$('#my-select').selectize({
    options: myOptions,
    create: true,
    sortField: function(item1, item2) {
        return item1.value - item2.value;
    },
    onInitialize: function() {
        this.addItem(userAddedOption);
    }
});