2010-06-08 23 views
7

Mam 2 opcje do wyboru. Chcę zmienić opcje rozwijania w drugiej opcji wyboru w oparciu o to, co wybieram w pierwszych wybranych opcjach. Jak to zrobić w jquery?Zmiana opcji w polu wyboru na podstawie różnych opcji wyboru

<select id="Manage"> 
    <option value="a">A</option> 
    <option value="b">B</option> 
    <option value="c">C</option> 
<select> 

drugie wybierz opcję jeśli A jest wybrany spośród najpierw wybrać opcję

<select id='selectA'> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select> 

Teraz, jeśli B jest wybrany spośród najpierw wybrać opcję

<select id='selectA'> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

Odpowiedz

8

coś takiego:

$('#Manage').change(function() { 
    var options = ''; 
    if($(this).val() == 'a') { 
     options = '<option value="1">1</option><option value="2">2</option>'; 
    } 
    else if ($(this).val() == 'b'){ 
     options = '<option value="3">3</option><option value="4">4</option>'; 
    } 

    $('#selectA').html(options); 
}); 

Oczywiście możesz mieć swoje opcje, np. przechowywane w tablicy i łączyć je w locie lub cokolwiek, to zależy od Ciebie.

referencyjny: .change(), .val()

+0

Próbowałem tego, ale nie działa !! – yogsma

+0

@yogsma: Działa dla mnie: http://jsbin.com/oceyo3/2 –

+0

Dzięki ... pracowałem właściwie. Brakowało mi średnika w miejscu. – yogsma

3

Można więc, że z 3 technik zaczepienia:

  1. załadować opcje dla drugiego wybrać z AJAX tak szybko jak pierwszy został wybrany
  2. zapisać wszystkie opcje dla drugiego wyboru w obiekcie JSON, a następnie włącz go po wybraniu pierwszego
  3. Predefiniujesz wszystkie zaznaczenia i pokaż/ukryj AND wyłącz/włącz inne zaznaczenia

Pierwsza jest prawdopodobnie najlepsza, ponieważ można uzyskać wartości z bazy danych w zależności od wyboru użytkownika i można zbudować stronę serwera po lewej stronie.

Powiązane problemy