2016-05-19 7 views
1

私は次のように私はselectizeに供給オプションの配列を持っている:私はビューをロードするとSelectize.js:整数値のオプションを並べ替えるには?

<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'フィールドが文字列で整数ではないと仮定しました。 selectizeに整数ベースのフィールドのソートを指定する方法はありますか?

selectboxが初期化され、カスタム入力100を追加した後のオプションの順序は次のようになります。

INITIAL ------- ---------- ------------------ 1
1カスタム入力AFTER -------- 100
30 ----------------- 7
90 ----------------- 30
200 ---------------- 90
365 ---------------- 200
------- --------------- 365

+0

あなたは数字ではなく文字列をソートしています。おそらく、番号のコールバックが必要です。 –

+0

上記の投稿を編集するにはどうすればよいですか?私は新しい(質問を投稿する点で)SOになっています。 – oomer

+0

あなたの投稿の下の[編集]をクリックするか、リンクをクリックしてください。 –

答えて

0
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); 
    } 
}); 
関連する問題