diff --git a/js/views-autocomplete-filters-autosubmit.js b/js/views-autocomplete-filters-autosubmit.js new file mode 100644 index 0000000..bb92c2d --- /dev/null +++ b/js/views-autocomplete-filters-autosubmit.js @@ -0,0 +1,9 @@ +(function($) { + Drupal.behaviors.viewsAutocompleteFiltersAutosubmit = { + attach : function(context, settings) { + $('input.views-ac-autosubmit', context).bind('autocompleteSelect', function() { + $(this).parents('form:first').find(':submit').click(); + }); + } + }; +})(jQuery); \ No newline at end of file diff --git a/views/handlers/views_autocomplete_filters_handler_filter_string.inc b/views/handlers/views_autocomplete_filters_handler_filter_string.inc index 652ca2e..8416113 100644 --- a/views/handlers/views_autocomplete_filters_handler_filter_string.inc +++ b/views/handlers/views_autocomplete_filters_handler_filter_string.inc @@ -25,6 +25,7 @@ class views_autocomplete_filters_handler_filter_string extends views_handler_fil 'autocomplete_raw_suggestion' => array('default' => TRUE), 'autocomplete_raw_dropdown' => array('default' => TRUE), 'autocomplete_dependent' => array('default' => FALSE), + 'autocomplete_autosubmit' => array('default' => FALSE), ); return $options; @@ -99,6 +100,13 @@ class views_autocomplete_filters_handler_filter_string extends views_handler_fil '#description' => t('The same as above, but for suggestion (text appearing inside textfield when item is selected).'), '#dependency' => array('edit-options-expose-autocomplete-filter' => array(TRUE)), ), + 'autocomplete_autosubmit' => array( + '#type' => 'checkbox', + '#title' => t('Autosubmit on selection'), + '#default_value' => $this->options['expose']['autocomplete_autosubmit'], + '#description' => t('The form will be submitted when selecting an element from the dropdown list.'), + '#dependency' => array('edit-options-expose-autocomplete-filter' => array(TRUE)), + ), ); } @@ -130,6 +138,13 @@ class views_autocomplete_filters_handler_filter_string extends views_handler_fil $form['value']['#attributes']['class'][] = 'views-ac-dependent-filter'; } + + // Add autosubmit + if (!empty($this->options['expose']['autocomplete_autosubmit'])) { + $file_path = drupal_get_path('module', 'views_autocomplete_filters') . '/js/views-autocomplete-filters-autosubmit.js'; + drupal_add_js($file_path); + $form['value']['#attributes']['class'][] = 'views-ac-autosubmit'; + } } /**