2013-07-01 7 views
9

Ich möchte dem Benutzer antworten, der ein Element in einem Auswahlelement auswählt. Doch diese jQuery:Welches Ereignis wird ausgelöst, wenn Element in der HTML-Auswahl/Dropdown-Liste ausgewählt ist?

$('#platypusDropDown').select(function() { 
    alert('You selected something'); 
}); 

... tut nichts. Es zeigt keine Warnung an, obwohl jsFiddle es als gültige jQuery ansieht.

Das Click-Ereignis funktioniert, aber es ist zu schnell - es wird beim Klicken auf das Element select ausgelöst, bevor eine Auswahl getroffen wird.

Natürlich, ich möchte wirklich wie etwas tun:

$('#platypusDropDown').select(function() { 
    var selection = $('platypusDropDown').val; 
    $.getJSON('platypus.json', selection, data() { 
     // . . . 
    }); 
}); 

Die HTML:

<select id="platypusDropDown"> 
    <option value="duckbill">duckbill</option> 
    <option value="duckbillPlatypus">duckbillPlatypus</option> 
    <option value="Platypus">Platypus</option> 
    <option value="Platypi">Platypi</option> 
</select> 

Antwort

10

Sie benötigen change Ereignis

$('#platypusDropDown').change(function() { 
    var selection = this.value; //grab the value selected 
    $.getJSON('platypus.json', selection, data() { 
    . . . 
    }); 
}); 

verwenden

Plus-$('platypusDropDown').val hier val val() sein sollte, und Sie müssen nicht ein jQuery-Objekt wieder über das Element erstellen, this innerhalb des Handlers stellt DOM-Element (aus, auf dem das Ereignis gebunden ist) und Sie können direkt den Zugriff auf Wert mit this.value oder $(this).val()

Verwandte Themen