From: Meik S. <acy...@ph...> - 2009-11-06 14:59:48
|
Author: acydburn Date: Fri Nov 6 14:59:02 2009 New Revision: 10255 Log: simplify the js code a bit and also detect up arrow key for auto completion Modified: branches/phpBB-3_0_0/phpBB/styles/prosilver/template/forum_fn.js Modified: branches/phpBB-3_0_0/phpBB/styles/prosilver/template/forum_fn.js ============================================================================== *** branches/phpBB-3_0_0/phpBB/styles/prosilver/template/forum_fn.js (original) --- branches/phpBB-3_0_0/phpBB/styles/prosilver/template/forum_fn.js Fri Nov 6 14:59:02 2009 *************** *** 321,336 **** var last_key_entered = ''; /** ! * Usually used for onkeypress event, to submit a form on enter */ ! function submit_default_button(event, selector, class_name) { ! // Add which for key events ! if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) ! event.which = event.charCode || event.keyCode; ! ! // Keycode is array down? ! if (event.keyCode && event.keyCode == 40) in_autocomplete = true; // Make sure we are not within an "autocompletion" field --- 321,332 ---- var last_key_entered = ''; /** ! * Check event key */ ! function phpbb_check_key(event) { ! // Keycode is array down or up? ! if (event.keyCode && (event.keyCode == 40 || event.keyCode == 38)) in_autocomplete = true; // Make sure we are not within an "autocompletion" field *************** *** 351,356 **** --- 347,367 ---- return true; } + return false; + } + + /** + * Usually used for onkeypress event, to submit a form on enter + */ + function submit_default_button(event, selector, class_name) + { + // Add which for key events + if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) + event.which = event.charCode || event.keyCode; + + if (phpbb_set_autocomplete(event)) + return true; + var current = selector['parentNode']; // Search parent form element *************** *** 394,413 **** if (!default_button || default_button.length <= 0) return true; ! // Keycode is array down? ! if (e.keyCode && e.keyCode == 40) ! in_autocomplete = true; ! ! // Make sure we are not within an "autocompletion" field ! if (in_autocomplete) ! { ! // If return pressed and key changed we reset the autocompletion ! if (!last_key_entered || last_key_entered == e.which) ! { ! in_autocompletion = false; ! return true; ! } ! } if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { --- 405,412 ---- if (!default_button || default_button.length <= 0) return true; ! if (phpbb_check_key(e)) ! return true; if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { *************** *** 415,422 **** return false; } - last_key_entered = e.which; - return true; }); --- 414,419 ---- |