Wow, noch keine wirklich wiederverwendbaren Lösungen unter den Antworten. Ich meine, ein Standard-Ereignishandler sollte nur ein eventArgument erhalten und muss überhaupt keine IDs verwenden. Ich würde verwenden:
function handleSelectChange(event) {
// if you want to support some really old IEs, add
// event = event || window.event;
var selectElement = event.target;
var value = selectElement.value;
// to support really old browsers, you may use
// selectElement.value || selectElement.options[selectElement.selectedIndex].value;
// like el Dude has suggested
// do whatever you want with value
}
Sie können diesen Handler mit jedem - Inline-Js verwenden:
<select onchange="handleSelectChange(event)">
<option value="1">one</option>
<option value="2">two</option>
</select>
jQuery:
jQuery('#select_id').on('change',handleSelectChange);
oder Vanilla JS-Handler-Einstellung:
var selector = document.getElementById("select_id");
selector.onchange = handleSelectChange;
// or
selector.addEventListener('change', handleSelectChange);
Und müssen Sie dies nicht für jedes selectElement neu schreiben, das Sie haben.
Beispielausschnitt:
function handleSelectChange(event) {
var selectElement = event.target;
var value = selectElement.value;
alert(value);
}
<select onchange="handleSelectChange(event)">
<option value="1">one</option>
<option value="2">two</option>
</select>