Domanda

Ho un elemento di selezione del modulo che, quando viene selezionato un determinato valore, attiva / disattiva altri due elementi sulla pagina (una coppia dt / dd).

L'evento è attivato correttamente, ma non riesco a attivare / disattivare gli elementi. Nota: sto usando i selettori di classe perché il numero di questi elementi "imposta". nella pagina è variabile. Ecco il mio codice:

$(".lender_id").change(function () {
if($(this).val()=='45')
   {
   $(this).next(".lender_other1").toggle();
   $(this).next(".lender_other2").toggle();
   }
});

lender_id è la mia classe di elementi select, codice html come segue (come indicato, questo set di elementi può apparire più volte sulla pagina):

<dt>Lender</dt>
<dd><select name="lender_id[1]" class="lender_id">
<option value="1">Value</option>
<option value="45">Special Value</option>
</select></dd>

<dt class="lender_other1" style="display:none;">Lender Name</dt>
<dd class="lender_other2" style="display:none;">
<input type="text" name="lender_other[1]" value="" /></dd>

<dt>Lender</dt>
<dd><select name="lender_id[2]" class="lender_id">
<option value="1">Value</option>
<option value="45">Special Value</option>
</select></dd>

<dt class="lender_other1" style="display:none;">Lender Name</dt>
<dd class="lender_other2" style="display:none;">
<input type="text" name="lender_other[2]" value="" /></dd>

etc...
È stato utile?

Soluzione

ecco quello che vuoi:

$(".lender_id").change(function() {
    if ($(this).val() == '45') {
        $(this).parent().nextAll(".lender_other1:first, .lender_other2:first").toggle();
    };
});

Modifica

Ho combinato i selettori di classe per renderlo più efficiente.

Altri suggerimenti

next () non fa ciò che pensi lo fa. Prova $ (this) .parent ('dl'). Find ('. Lender_other1') . Oppure, sai, forse solo $ ('. Lender_other1') .

.next () restituisce solo la prossima partita, quindi penso che dovresti usare .nextAll ()

http://docs.jquery.com/Traversing/nextAll#expr

usa il metodo slice (inizio, fine) . questo è il modo corretto secondo un video di john resig.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top