Returning to this, it turns out that after asking this question, Chrome now triggers the change after key events. Firefox seems to be still waiting onblur. http://jsfiddle.net/2aQBN/
$(document).ready(function() { $("#test").on("change", function() { console.log("Changed."); }); });
The W3C specification suggests using input instead.
When an input event is applied, each time the user invokes an element to change the value, the user agent must queue the task to trigger a simple event, which the bubbles call the input element of the input element.
However, no input event is fired in Chrome or Firefox for the select element. (Input elements only.)
A test showing the current value compared to the last exchange value.
http://jsfiddle.net/teynon/MpyHK/5/
Firefox will change the value of onmouseover. Changing a key will also change the value. However, he did not fire. If the form is submitted when the user opens the selection menu, the currently selected option is displayed.
From W3C:
If the multiple attribute is absent and the element is not disabled, then the user agent must allow the user to select the option element in his list of parameters, which is not disabled by itself. With this option, the element is selected (through a click or through a non-focusing element after changing its value or through a menu command, or through any other mechanism) and before the corresponding user interaction the event is queued (for example, before the click event), the user agent must set the choice the selected option element is true, and then the queue a task launches a simple event that the bubbles with the name change when selected, using the source of the user interaction task as the source for Achi.
The https://bugzilla.mozilla.org/show_bug.cgi?id=126379 section discusses a long time when many people ask to use the arrow keys. (And some advocate an onchange approach.)
Some users have suggested that W3C is wrong in the specification for the select element change event. Instead, we suggest modifying the specification of how we expect the select onchange functionality to work.
The current functionality is clearly not intuitive for a large number of people based solely on the number of error reports. (Mozilla has 40 marked as duplicates.)