2012-07-03 13 views
15

Hi trzeba zmienić wybrany indeks gdy inny został zmieniony .. Przykład: mamZmień wybrany indeks jQuery

<select id="selector"> 
<option>No 1</option> 
<option>No 2</option> 
</select> 
<select id="selected"> 
<option>ONE</option> 
<option>TWO</option> 
</select> 

teraz chcę $ wybrany wskaźnik się zmieniać, gdy selektor # użytkownika indeks zostanie zmieniony. Podobnie jak w przypadku zmiany na "Nie 2", inny combobox zmieni się na "DRUGI". pardon dla początkujących pytanie, ale jestem nowy w jQuery ^^

Odpowiedz

28
$('#selector').change(function() { 
    var idx = this.selectedIndex;   
    $("select#selected").prop('selectedIndex', idx); 
}); 
+0

thx .. zadziałało :) Wiem, że to tylko takie proste, ale moja wiedza nie jest tak wielki xD – None

+1

Dla wszystkich, że trzeba wiedzieć (bo nie): 'idx 'tutaj zawiera wartość' 0' lub '1'. '

7

sugeruję:

$('#selector').change(
    function(){ 
     var index = this.selectedIndex; 
     $('#selected option').eq(index).prop('selected',true); 
    }); 

JS Fiddle demo.

Odniesienia:

+0

+1, pokazał mi zbyt szybki – diEcho

3

Wystarczy za pomocą regularnego JavaScript jQuery wydaje się zbędne, ponieważ na to:

document.getElementById('selector').onchange = function() { 
    document.getElementById('selected').selectedIndex = this.selectedIndex; 
} 

Working DEMO

3

z jQuery 1.7.2

$(document).on('change', '#selector', function(){ 
    var si = this.selectedIndex 
    $('#selected option').eq(si).prop('selected',true); 
});​ 

Working DEMO

0

SelectedIndex zaczyna się od 0.

Jeśli lista rozwijana pozwala na wielokrotne pozycje to tylko zwraca indeks pierwszego wybranej opcji.
Wartość "-1" odznacza wszystkie opcje (jeśli występują).
Jeśli nie wybrano żadnej opcji, właściwość selectedIndex zwróci wartość -1.

$('#idselect').change(function() { 
    var index = this.selectedIndex; 
    //... 
}); 
Powiązane problemy