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 ----
|