jQuery .change() event doesn't fire on select list from keyboard: how can I override this?
<p>The jQuery <code>.change()</code> event doesn't fire the second time the user types and presses Enter to select an item. It does fire the first time. </p>

<p>See: <a href="http://jsfiddle.net/CtXbU/" rel="nofollow">http://jsfiddle.net/CtXbU/</a></p>

<p>If you focus on the list and type AD and press Enter, [EDIT] the alert fires. But if you then type AG and press Enter, nothing happens. The alert only pops up when you click away from the list.</p>

<p>What do I do if I want to handle the user changing the list both with the mouse and the keyboard?</p>

<p>I know I can use <code>.keypress()</code> to handle keyboard events, but it feels odd to have two separate sections of code both doing the same thing.</p>

<p>Is there a single jQuery event that would handle both mouse and keyboard changes as soon as they occur?</p>

<p>Thanks!</p>

<p>** UPDATE **</p>

<p>This might clarify my question: <a href="http://jsfiddle.net/Bybr2/2/" rel="nofollow">http://jsfiddle.net/Bybr2/2/</a></p>

<pre><code>// How can I create an event (or handler) that 
// (a) fires AS SOON AS keypress is invoked from user keyboard input
// (b) also fires AS SOON AS change is invoked from user mouse input
// (c) does not fire a second time when change is invoked after keypress, when the user clicks away following keypress?
</code></pre>

<p><code>change</code> after keypress can be very confusing - it only occurs when the user presses Enter or clicks away, so if I'm making client-side changes then, the user may well be very surprised!</p>

<p>The only solution I can think of is some kind of variable like <code>user_has_just_done_keypress</code> which is set as <code>true</code> on keypress and then reset to <code>false</code> on the next <code>change</code> event, but it feels very messy. It also wouldn't work if you had a <code>change</code> from the mouse before the <code>change</code> from the user refocussing. Argh!</p>
