2017-07-23 124 views
0

我有问题添加新的选项值到选定的插件。添加多个值到多个选择jquery插件(选择)

您在这里有所有的代码。

我做了什么?

  • 我创建了一个数组中添加所有选定的选项和一个选择最近
  • 我添加新的阵列到所选择的输入,以动态地获得结果

更新问题是什么 ?

  • 我有重复的值在所选择的插件
  • 我没有得到的结果通缉,每次我点击新的显示只有一个值,在之前选定的选项未添加!

想得到什么结果?

  • 当我点击第一个多选(。第二类),这一个自动添加到所述第二多选(选择插件)。
  • 如果我点击第二个多选中已存在的值的另一个时间,则不会再添加此一个。
  • 每当我点击一个新的选项,我得到它追加和第二次multiselect选择,并将显示所有选择一个不仅新点击一个。

有问题吗?

$(".chosen-select").chosen(); 
 

 
$("#second").on('click', 'option', function(e) { 
 
var getid = $(this).val(); 
 
var getnom = $(this).text(); 
 
var ids = []; 
 

 
$('.chosen-select') 
 
     .append($("<option></option>") 
 
        .attr("value",getid) 
 
        .text(getnom)); 
 
        
 
ids.push(getid); 
 
$('.chosen-select option:selected').each(function(i, selected) { 
 
ids.push(i); 
 
}); \t 
 

 
$(".chosen-select").val(ids).trigger("chosen:updated"); 
 
}); 
 

 
$('button').click(function(){ 
 
     $(".chosen-select").val('').trigger("chosen:updated"); 
 
});
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen.jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen.min.css" rel="stylesheet"/> 
 

 

 
<select id="second" data-placeholder="Choose a Country..." 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> 
 
<br /><br /> 
 
<select id="first" data-placeholder="Choose a Country..." class="chosen-select" multiple style="width:350px;" tabindex="4"> 
 
    
 
    
 
     </select> 
 
<br /><br /> 
 
<button class="btn">Reset</button>

回答

0

更新1(修复问题1),只有当它已经不加入存在选项添加到.chosen-select - 元素的if语句:

if ($('.chosen-select option[value="'+getid+'"]').length === 0) { 
    $('.chosen-select') 
      .append($("<option></option>") 
         .attr("value",getid) 
         .text(getnom)); 
} 

更新2 (修复问题2),将正确的值推送到ids-阵列。不是索引,而是所选选项的值。可以通过记录ID值来注意(例如console.log(ids))。

$('.chosen-select option:selected').each(function(i, selected) { 
    ids.push(selected.value); // Was: ids.push(i); 
}); 

工作例如:https://jsfiddle.net/petervanderwal/oz9knatt/

+0

许多感谢的先生,工作就像一个魅力! –