- Patch #216059 by nedjo, theborg, karens, goba, webchick et al: AHAH triggered by text input enter key press breaks autocomplete.
parent
0f1085201e
commit
1d390ef36c
|
@ -1749,7 +1749,13 @@ function form_expand_ahah($element) {
|
||||||
case 'submit':
|
case 'submit':
|
||||||
case 'button':
|
case 'button':
|
||||||
case 'image_button':
|
case 'image_button':
|
||||||
$element['#ahah']['event'] = 'click';
|
// Use the mousedown instead of the click event because form
|
||||||
|
// submission via pressing the enter key triggers a click event on
|
||||||
|
// submit inputs, inappropriately triggering AHAH behaviors.
|
||||||
|
$element['#ahah']['event'] = 'mousedown';
|
||||||
|
// Attach an additional event handler so that AHAH behaviours
|
||||||
|
// can be triggered still via keyboard input.
|
||||||
|
$element['#ahah']['keypress'] = TRUE;
|
||||||
break;
|
break;
|
||||||
case 'password':
|
case 'password':
|
||||||
case 'textfield':
|
case 'textfield':
|
||||||
|
@ -1773,6 +1779,7 @@ function form_expand_ahah($element) {
|
||||||
$ahah_binding = array(
|
$ahah_binding = array(
|
||||||
'url' => url($element['#ahah']['path']),
|
'url' => url($element['#ahah']['path']),
|
||||||
'event' => $element['#ahah']['event'],
|
'event' => $element['#ahah']['event'],
|
||||||
|
'keypress' => empty($element['#ahah']['keypress']) ? NULL : $element['#ahah']['keypress'],
|
||||||
'wrapper' => empty($element['#ahah']['wrapper']) ? NULL : $element['#ahah']['wrapper'],
|
'wrapper' => empty($element['#ahah']['wrapper']) ? NULL : $element['#ahah']['wrapper'],
|
||||||
'selector' => empty($element['#ahah']['selector']) ? '#'. $element['#id'] : $element['#ahah']['selector'],
|
'selector' => empty($element['#ahah']['selector']) ? '#'. $element['#id'] : $element['#ahah']['selector'],
|
||||||
'effect' => empty($element['#ahah']['effect']) ? 'none' : $element['#ahah']['effect'],
|
'effect' => empty($element['#ahah']['effect']) ? 'none' : $element['#ahah']['effect'],
|
||||||
|
|
13
misc/ahah.js
13
misc/ahah.js
|
@ -38,6 +38,7 @@ Drupal.ahah = function(base, element_settings) {
|
||||||
this.element = element_settings.element;
|
this.element = element_settings.element;
|
||||||
this.selector = element_settings.selector;
|
this.selector = element_settings.selector;
|
||||||
this.event = element_settings.event;
|
this.event = element_settings.event;
|
||||||
|
this.keypress = element_settings.keypress;
|
||||||
this.url = element_settings.url;
|
this.url = element_settings.url;
|
||||||
this.wrapper = '#'+ element_settings.wrapper;
|
this.wrapper = '#'+ element_settings.wrapper;
|
||||||
this.effect = element_settings.effect;
|
this.effect = element_settings.effect;
|
||||||
|
@ -98,6 +99,18 @@ Drupal.ahah = function(base, element_settings) {
|
||||||
$(element_settings.element).parents('form').ajaxSubmit(options);
|
$(element_settings.element).parents('form').ajaxSubmit(options);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
// If necessary, enable keyboard submission so that AHAH behaviors
|
||||||
|
// can be triggered through keyboard input as well as e.g. a mousedown
|
||||||
|
// action.
|
||||||
|
if (element_settings.keypress) {
|
||||||
|
$(element_settings.element).keypress(function(event) {
|
||||||
|
// Detect enter key.
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
$(element_settings.element).trigger(element_settings.event);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue