2017-02-16 96 views
1

我试图在每次选择框的最后添加select2选项,当我从select2选项中选择一个新选项时,它会添加有时第一个位置,有时候是其他选项的最后或中间选项。如何在select2框的最后添加新选项?

像第一个我选择A.现在我想选择B,我想B后在A框中。即A | B ..但它并非一直都在发生。

$('#destination').select2({allowClose: true});
.select2-container { width: 100%; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://select2.github.io/select2/select2-3.5.1/select2.css" rel="stylesheet"/> 
 
<script src="https://select2.github.io/select2/select2-3.5.1/select2.js"></script> 
 

 
<select id="destination" class="destination form-control" multiple="multiple"> 
 
    <option value="kol">kolkata</option> 
 
    <option value="ban">Bangalore</option> 
 
    <option value="del">Delhi</option> 
 
</select>

+0

你能证明你尝试过这样的问题可以更具体的代码 –

回答

0

使用append

$("#add_option_b").on("click", function() { 
 
    $("#select_id").append("<option value='B'>B</option>") 
 
}); 
 

 
$("#add_option_c").on("click", function() { 
 
    $("#select_id").append("<option value='C'>C</option>") 
 
}); 
 

 
$("#add_option_d").on("click", function() { 
 
    $("#select_id").append("<option value='D'>D</option>") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<select id="select_id"> 
 
    <option value"A">A</select> 
 
</select> 
 
<br /> 
 
<br /> 
 
<button id="add_option_b">Add option B</button> 
 
<br /> 
 
<br /> 
 
<button id="add_option_c">Add option C</button> 
 
<br /> 
 
<br /> 
 
<button id="add_option_d">Add option D</button>

希望帮助:)

+0

选择应多选择。我的意思是选择2和所有的选项应安排。如果我在选择中有3个选项。如果我选择了所有这些选项..它应该像选择框中的[A,B,C]不像[C,A,B]。 –

0

试试这个,它会工作

$(element).select2('data').map(function (obj) { return obj.id; }) 
0

Working fiddle

您应该使用option的索引,而不是使用jQuery方法.index()检查下面的示例。

希望这会有所帮助。

$('#destination').select2({allowClose: true}); 
 
$('#destination').on('change', function(){ 
 
    var selected_values = [], 
 
     arr = []; 
 

 
    if($(this).val().length) 
 
    { 
 
    $.each($(this).val(), function(i,v){ 
 
     arr[ $('[value="'+v+'"]').index() ] = v; 
 
    }); 
 
    arr.map(function(x){ selected_values.push(x); }) 
 

 
    console.log(selected_values); 
 
    } 
 
});
.select2-container { width: 100%; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://select2.github.io/select2/select2-3.5.1/select2.css" rel="stylesheet"/> 
 
<script src="https://select2.github.io/select2/select2-3.5.1/select2.js"></script> 
 

 
<select id="destination" class="destination form-control" multiple="multiple"> 
 
    <option value="kol" >kolkata</option> 
 
    <option value="ban" >Bangalore</option> 
 
    <option value="del" >Delhi</option> 
 
</select>

+0

嗨#Zakaria Achark我得到一个问题,当我添加一个选项,而不是从选择列表中删除。我不能删除选择框中的所有选项,当我删除获取 - “未捕获TypeError:无法读取jQuery中的属性'空'的空值”。 –

+0

不客气,很高兴我能帮上忙。请在你的问题中更新我的问题中的jsFiddle。并在此发布。 –

+0

http://stackoverflow.com/questions/42300999/iterate-over-javascript-object-and-remove-array它不是重复的。审查它。 –

相关问题