2010-06-08 20 views
7

Ho 2 opzioni di selezione. Voglio cambiare le opzioni a discesa nelle seconde opzioni di selezione in base a ciò che seleziono nelle prime opzioni di selezione. Come posso farlo in jQuery?Modifica delle opzioni nella casella di selezione in base a diverse opzioni di selezione

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

Seconda selezionare l'opzione se A è selezionata da prima opzione di selezione

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

Ora, se B è selezionato da prima opzione di selezione

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

risposta

8

Qualcosa di simile:

$('#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); 
}); 

Ovviamente puoi avere le tue opzioni, ad es. memorizzati in un array e combinarli in volo o altro, dipende da te.

Riferimento: .change(), .val()

+0

Ho provato questo, ma non funziona !! – yogsma

+0

@ yogsma: Funziona per me: http://jsbin.com/oceyo3/2 –

+0

Grazie .. ha funzionato in realtà. Mi mancava un punto e virgola in un posto. – yogsma

3

È possibile in modo che con 3 tecniche diffrent:

  1. di caricare le opzioni per la seconda selezionare con AJAX, non appena il primo è stato selezionato
  2. Risparmi tutte le opzioni per la seconda selezione in un oggetto JSON e quindi includerla dopo che è stata selezionata la prima
  3. Predefinite tutte le selezioni e mostra/nascondi E disabilita/abilita le altre selezioni

Il primo è probabilmente il migliore in quanto è possibile ottenere valori da un database a seconda della scelta degli utenti e si può costruire il lato del server select hole.

Problemi correlati