diff --git a/entity_autocomplete.module b/entity_autocomplete.module index 901b581..2996fd2 100644 --- a/entity_autocomplete.module +++ b/entity_autocomplete.module @@ -125,7 +125,7 @@ function entity_autocomplete_element_info() { '#autocomplete_path' => FALSE, '#entity_type' => 'node', '#bundles' => array(), - '#process' => array('entity_autocomplete_element_process'), + '#process' => array('entity_autocomplete_element_process', 'ajax_process_form'), '#element_validate' => array('entity_autocomplete_element_validate'), '#value_callback' => 'entity_autocomplete_element_value', '#theme' => 'textfield', @@ -176,10 +176,19 @@ function entity_autocomplete_element_process($element, $form_state) { } } - // Function form_process_autocomplete() was added to core in v7.39. - if (function_exists('form_process_autocomplete')) { - $element = form_process_autocomplete($element); - } + // Function form_process_autocomplete() was added to core in v7.39. + if (function_exists('form_process_autocomplete')) { + $element = form_process_autocomplete($element); + } + + // Keep compatible with AJAX. + if (isset($element['#ajax']) && !isset($element['#ajax']['event'])) { + // The ajax_pre_render_element() function does not recognize the + // 'entity_autocomplete' element, so is does not add the expected event + // that triggers the AJAX callback. + $element['#ajax']['event'] = 'blur'; + } + return $element; } @@ -243,4 +252,4 @@ function entity_autocomplete_element_validate($element, &$form_state, $form) { form_error($element, t('The specified entity %value does not match requirements.', array('%value' => $element['#value']))); } } -} \ No newline at end of file +}