Skip to content
Browse files

Revert "MDL-30912 - lib - A tidy up of the submit url jump functions …

…for greater ease with accessability."

This reverts commit 82203a1.
  • Loading branch information...
1 parent 8049a5c commit 2173e56a295db46ad484c0c9b3b57eb7fade6a84 @stronk7 stronk7 committed Jul 5, 2012
Showing with 13 additions and 16 deletions.
  1. +12 −15 lib/javascript-static.js
  2. +1 −1 lib/outputrenderers.php
View
27 lib/javascript-static.js
@@ -381,36 +381,33 @@ M.util.init_select_autosubmit = function(Y, formid, selectid, nothing) {
if ((nothing===false || select.get('value') != nothing) && paramobject.lastindex != select.get('selectedIndex')) {
//prevent event bubbling and detach handlers to prevent multiple submissions caused by double clicking
e.halt();
+ paramobject.eventkeypress.detach();
+ paramobject.eventblur.detach();
paramobject.eventchangeorblur.detach();
+
this.submit();
}
};
-
- var changedown = function(e, paramobject) {
- if ((nothing===false || select.get('value') != nothing) && paramobject.lastindex != select.get('selectedIndex')) {
- if(e.keyCode == 13) {
- form.submit();
- }
- }
- }
-
- // Attach the change event to the keydown and click actions.
+ // Attach the change event to the keypress, blur, and click actions.
// We don't use the change event because IE fires it on every arrow up/down
// event.... usability
var paramobject = new Object();
paramobject.lastindex = select.get('selectedIndex');
- paramobject.eventchangeorblur = select.on('click', processchange, form, paramobject);
- paramobject.eventkeypress = Y.on('keydown', changedown, select, '', form, paramobject);
+ paramobject.eventkeypress = Y.on('key', processchange, select, 'press:13', form, paramobject);
+ paramobject.eventblur = select.on('blur', processchange, form, paramobject);
+ //little hack for chrome that need onChange event instead of onClick - see MDL-23224
+ if (Y.UA.webkit) {
+ paramobject.eventchangeorblur = select.on('change', processchange, form, paramobject);
+ } else {
+ paramobject.eventchangeorblur = select.on('click', processchange, form, paramobject);
+ }
}
}
});
};
/**
* Attach handler to url_select
- * Deprecated from 2.3 onwards.
- * Please use @see init_select_autosubmit() for redirecting to a url (above).
- * This function has accessability issues and also does not use the formid passed through as a parameter.
*/
M.util.init_url_select = function(Y, formid, selectid, nothing) {
YUI(M.yui.loader).use('node', function(Y) {
View
2 lib/outputrenderers.php
@@ -1472,7 +1472,7 @@ protected function render_url_select(url_select $select) {
$go = html_writer::empty_tag('input', array('type'=>'submit', 'value'=>get_string('go')));
$output .= html_writer::tag('noscript', html_writer::tag('div', $go), array('style'=>'inline'));
$nothing = empty($select->nothing) ? false : key($select->nothing);
- $output .= $this->page->requires->js_init_call('M.util.init_select_autosubmit', array($select->formid, $select->attributes['id'], $nothing));
+ $output .= $this->page->requires->js_init_call('M.util.init_url_select', array($select->formid, $select->attributes['id'], $nothing));
} else {
$output .= html_writer::empty_tag('input', array('type'=>'submit', 'value'=>$select->showbutton));
}

0 comments on commit 2173e56

Please sign in to comment.
Something went wrong with that request. Please try again.