Javascript Selectize.js:如何对整数值上的选项进行排序?
我有一系列选项,我将其输入selectize,如下所示:Javascript Selectize.js:如何对整数值上的选项进行排序?,javascript,sorting,Javascript,Sorting,我有一系列选项,我将其输入selectize,如下所示: <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')
<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'
}
});
var myOptions=[1,20,7,30,90,365].map(函数(值){
返回{
文本:值,
价值:价值
};
});
$(“#我的选择”)。选择({
选项:myOptions,
创造:真的,
索特菲尔德:{
字段:“文本”,
方向:“asc”
}
});
当我加载视图时,选择框出现,选项第一次排序正确,但当我添加自定义选项时,列表不会按排序顺序正确更新。看起来列表确实被重新引用了,但它假定字段“text”的类型为string而不是整数。在selectize中,是否有方法指定基于整数的字段的排序
下面是在selectbox初始化时以及在我向其添加自定义输入100后,选项顺序的外观
首字母------自定义输入后1-----------------1
7------------------100
30-----------------7
90---------30
200-------90
365-------200
----------------------365您正在排序字符串,而不是数字。也许你需要回拨号码。我如何编辑上面的问题帖子?我是SO的新成员(就发布问题而言)。在您的帖子下方,或通过单击链接。非常感谢您如此及时地回复@nina,并指出帖子下方的编辑链接,这是如此微妙,我在显而易见的情况下错过了它。谢谢。我找不到任何简单的方法通过他们的api来实现。我希望有更多图书馆经验的人可能会有一个简单的解决方案。插入数字的部分在哪里?如果你能插入一个数字,那么它就可以正确排序,我想。另一种方法是在添加选项后更新它们,以保存数值,而不是文本,如下所示:$(“#我的选择”)。选择({options:myOptions,create:true,sortField:[{field:'text',direction:'asc}],onOptionAdd:function(value,data){this.updateOption(value,{text:parseInt(data.text,10),value:parseInt(data.text,10)};});
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);
}
});