2017-04-19 29 views
6

Bir seçim kutunuz var ve bu seçeneği işaretlediğimde, seçim kutusunu selectbox'ın değerleriyle güncelleştirir. Bu, Bootstrap-Select'in eski bir sürümü ile çalışıyor. Ancak daha yeni versiyonda artık çalışmıyor. Bunu daha yeni sürümde çalışmak için bir yol arıyorum. Teşekkürler. (Çalışma)"Bootstrap-Select" öğesinden değer alın

HTML:

<select class="selectpicker Categoria" multiple=""> 
    <option selected>A1</option> 
    <option selected>A2</option> 
    <option>A3</option> 
    <option>A4</option> 
</select> 
<input type="text" class="ChangeCategory" name="ChangeCategory"> 

JS:

$('select').selectpicker(); 

$(".Categoria").change(function() { 
    f2(); 
}); 

var f2 = function(){ 
    $('.ChangeCategory').val($(".Categoria").val()); 
} 
f2(); 

cevap

5

Seçilen tüm değerleri elde etmek için bir çözüm Array.from() ve map yöntemlerini kullanmaktır.

var values=Array.from($(".Categoria").find(':selected')).map(function(item){ 
    return $(item).text(); 
}); 

Çalışma çözüm

$('select').selectpicker(); 
 

 
$(".Categoria").change(function() { 
 
    f2(); 
 
}); 
 

 
var f2 = function(){ 
 
    var values=Array.from($(".Categoria").find(':selected')).map(function(item){ 
 
     return $(item).text(); 
 
    }); 
 
    $('.ChangeCategory').val(values); 
 
} 
 
f2();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.js"></script> 
 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> 
 
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"/><select class="selectpicker Categoria" multiple=""> 
 
    <option selected>A1</option> 
 
    <option selected>A2</option> 
 
    <option>A3</option> 
 
    <option>A4</option> 
 
</select> 
 
<input type="text" class="ChangeCategory" name="ChangeCategory">

Sen arrow işlevini kullanarak, tek bir kod satırında, ayrıca, bunu yapabilirsiniz.

$('.ChangeCategory').val(Array.from($(".Categoria option:selected")).map(a=>$(a).text()).join(',')); 
1

aşağıda ile f2 değiştirin:

var f2 = function(){ 
$('.ChangeCategory').val($(".Categoria option:selected").text()); 
}