我正在使用选择的jquery库。选择的值存储在数组中,然后稍后再次加载。加载的值正确,但是选择顺序不正确。
例如,如果我选择option3,然后选择option2,则重新加载时的顺序为option2,option3。
html:
<select id="second" data-placeholder="Choose a Country..." class="chosen-select" multiple style="width:350px;" tabindex="4">
<option value=""></option>
<option value="United States">United States</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="American Samoa">American Samoa</option>
<option value="Andorra">Andorra</option>
<option value="Angola">Angola</option>
<option value="Anguilla">Anguilla</option>
</select>
JavaScript:
$(".chosen-select").chosen();
var selectedOptions = [];
$('button').click(function(){
//$(".chosen-select").val('').trigger("chosen:updated");
$('#second_chosen ul li span').each(function(i, selected){
selectedOptions[i] = $(selected).text();
});
//clear the selection
$("#second").val("").trigger("chosen:updated");
});
$('#previousBtn').click(function(){
console.log(selectedOptions);
$("#second").val(selectedOptions).trigger("chosen:updated");
});
在selectedOptions数组中选择顺序是正确的,但是它以选项的顺序显示,而不是选择的顺序。
请找到jsfiddle:https://jsfiddle.net/Da4m3/1051/。
知道如何解决这个问题吗?
答案 0 :(得分:0)
我使用了 push()函数将值添加到 selectedOptions 数组
$('#second_chosen ul li span').each(function(i, selected){
selectedOptions.push($(selected).text());
});
答案 1 :(得分:0)
关键是,在select
中,数组中的条目未按相同顺序显示答案 2 :(得分:0)
查看下面的链接是否有帮助。
Chosen: Keep Multiple Selection Order
https://github.com/tristanjahier/chosen-order
有一个您要问的插件。