2011-08-23 9 views
7

Come posso rilevare in jQuery quando è stata cambiata qualsiasi opzione in un tag di selezione?jQuery - gestore di eventi per rilevare se l'opzione di selezione HTML è stata selezionata

Per esempio [pseudocodice]:

event handler function -> option changed(){  
    //do some stuff 
} 

EDIT:

Ho il seguente selezionare:

<select id = "selectattribute"> 
    <OPTION VALUE="0">Choose Attribute</OPTION> 
    <?php echo($options);?> 
</select> 

sto provando questo in jQuery:

$(document).ready(function() { 
    $("#selectattribute").change(function() { 
    alert('Handler for .change() called.'); 
    }); 
}); 

Non succede niente ... th La funzione non è innescata.

EDIT: funziona quando uso $("#select") invece di $("#selectattribute")...can you not apply it to particular select tags?

+0

Si allega un ascoltatore all'elemento di selezione per l'evento di modifica. È possibile utilizzare jQuery (o qualsiasi numero di librerie) o alcune righe di script semplice o un gestore in linea. – RobG

+0

@RobG: Davvero non dovresti proporre un gestore in linea ... – Saxoier

+0

hai provato diversi browser? –

risposta

8

Da jQuery docs regarding the change handler:

<form> 
    <input class="target" type="text" value="Field 1" /> 
    <select class="target"> 
    <option value="option1" selected="selected">Option 1</option> 
    <option value="option2">Option 2</option> 
    </select> 
</form> 
<div id="other"> 
    Trigger the handler 
</div> 

Il gestore di eventi può essere legato al metodo di scrittura e la casella di selezione:

$('.target').change(function() { 
    alert('Handler for .change() called.'); 
}); 
+0

Ciao, l'ho visto e l'ho implementato ma non funziona ... vedi il mio post modificato – user906568

+0

Dovrebbe funzionare in base al codice che hai postato in la tua modifica. Vedi il collegamento di violino di "Jon P" in un'altra risposta qui. Il tuo codice postato funziona quando isolato. Quindi è possibile che tu abbia altre cose nel resto della pagina che sta rovinando tutto - potresti dover postare l'intera pagina HTML. Stai usando il nome dell'ID più di una volta? Ci sono errori JavaScript nella console? –

1
$("select").change(function() {}) 
+0

L'ho provato ma non funziona -> vedi il mio post modificato – user906568

+0

devi dare un'occhiata ai documenti per i selettori di jQuery $ ("seleziona") 'selezionerebbe tutti i tag'