I have a view with multiple exposed filters set to 'Allow multiple selections' for a series of 'has taxonomy term' selectors. We have four exposed filters; Sector, Location, Job Type, and Renumeration. The first filter 'Sector' does not have any child terms, whereas the other three have sub-terms that appear once you select the parent term (thanks to the great functionality within SHS).

However I am facing an issue using 7.x-1.6 whereby the exposed filter does not work for the third filter (Job Type). The filter works fine for the first two, but upon selecting a Job Type and a child term, the view does not return the correct results, and it does not remember what's been selected for 'Job Type' (the filter appears unselected).

Note that these filters work perfectly if 'Allow multiple selections' is not selected (so we get a normal select drop-down instead of a multi-select box).

I tried upgrading to the dev version but it still doesn't work and it throws an "Undefined offset" error. I have created a separate issue for this here - https://drupal.org/node/2032705

Thanks for your help.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Anonymous’s picture

Here is the view export:

$view = new view();
$view->name = 'job_test';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Job test';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Jobs';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'role';
$handler->display->display_options['access']['role'] = array(
  3 => '3',
  5 => '5',
  6 => '6',
  7 => '7',
  4 => '4',
);
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button'] = TRUE;
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '12';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'node';
/* Header: Global: Text area */
$handler->display->display_options['header']['area']['id'] = 'area';
$handler->display->display_options['header']['area']['table'] = 'views';
$handler->display->display_options['header']['area']['field'] = 'area';
$handler->display->display_options['header']['area']['empty'] = TRUE;
$handler->display->display_options['header']['area']['content'] = '<div class="message">Tip: Hold the <b>Ctrl/command</b> or <b>Shift</b> button and click to select multiple search terms.</div>';
$handler->display->display_options['header']['area']['format'] = 'filtered_html';
/* No results behavior: Global: Text area */
$handler->display->display_options['empty']['area']['id'] = 'area';
$handler->display->display_options['empty']['area']['table'] = 'views';
$handler->display->display_options['empty']['area']['field'] = 'area';
$handler->display->display_options['empty']['area']['empty'] = TRUE;
$handler->display->display_options['empty']['area']['content'] = 'Sorry, we couldn\'t find any matching jobs. Please broaden your search criteria and try again.';
$handler->display->display_options['empty']['area']['format'] = 'filtered_html';
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/* Sort criterion: Content: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'job' => 'job',
);
$handler->display->display_options['filters']['type']['group'] = 1;
/* Filter criterion: Content: Has taxonomy term */
$handler->display->display_options['filters']['tid']['id'] = 'tid';
$handler->display->display_options['filters']['tid']['table'] = 'taxonomy_index';
$handler->display->display_options['filters']['tid']['field'] = 'tid';
$handler->display->display_options['filters']['tid']['operator'] = 'and';
$handler->display->display_options['filters']['tid']['group'] = 1;
$handler->display->display_options['filters']['tid']['exposed'] = TRUE;
$handler->display->display_options['filters']['tid']['expose']['operator_id'] = 'tid_op';
$handler->display->display_options['filters']['tid']['expose']['label'] = 'Sector';
$handler->display->display_options['filters']['tid']['expose']['operator'] = 'tid_op';
$handler->display->display_options['filters']['tid']['expose']['identifier'] = 'tid';
$handler->display->display_options['filters']['tid']['expose']['multiple'] = TRUE;
$handler->display->display_options['filters']['tid']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
  7 => 0,
);
$handler->display->display_options['filters']['tid']['type'] = 'select';
$handler->display->display_options['filters']['tid']['vocabulary'] = 'industry_sector';
$handler->display->display_options['filters']['tid']['error_message'] = FALSE;
/* Filter criterion: Content: Has taxonomy terms (with depth; <em class="placeholder">Simple hierarchical select</em>) */
$handler->display->display_options['filters']['shs_term_node_tid_depth']['id'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['table'] = 'node';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['field'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['group'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['exposed'] = TRUE;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['operator_id'] = 'shs_term_node_tid_depth_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['label'] = 'Location';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['operator'] = 'shs_term_node_tid_depth_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['identifier'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['multiple'] = TRUE;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
  7 => 0,
);
$handler->display->display_options['filters']['shs_term_node_tid_depth']['vocabulary'] = 'location';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['hierarchy'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['error_message'] = FALSE;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['depth'] = '1';
/* Filter criterion: Content: Has taxonomy terms (with depth; <em class="placeholder">Simple hierarchical select</em>) */
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['id'] = 'shs_term_node_tid_depth_2';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['table'] = 'node';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['field'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['group'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['exposed'] = TRUE;
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['operator_id'] = 'shs_term_node_tid_depth_2_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['label'] = 'Job Type';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['operator'] = 'shs_term_node_tid_depth_2_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['identifier'] = 'shs_term_node_tid_depth_2';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
  7 => 0,
);
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['vocabulary'] = 'job_types';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['error_message'] = FALSE;
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['depth'] = '1';
/* Filter criterion: Content: Has taxonomy terms (with depth; <em class="placeholder">Simple hierarchical select</em>) */
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['id'] = 'shs_term_node_tid_depth_1';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['table'] = 'node';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['field'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['group'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['exposed'] = TRUE;
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['operator_id'] = 'shs_term_node_tid_depth_1_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['label'] = 'Renumeration';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['operator'] = 'shs_term_node_tid_depth_1_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['identifier'] = 'shs_term_node_tid_depth_1';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
  7 => 0,
);
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['vocabulary'] = 'renumeration';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['error_message'] = FALSE;
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['depth'] = '1';
/* Filter criterion: Content: Status (field_job_status) */
$handler->display->display_options['filters']['field_job_status_value']['id'] = 'field_job_status_value';
$handler->display->display_options['filters']['field_job_status_value']['table'] = 'field_data_field_job_status';
$handler->display->display_options['filters']['field_job_status_value']['field'] = 'field_job_status_value';
$handler->display->display_options['filters']['field_job_status_value']['value'] = array(
  1 => '1',
);
$handler->display->display_options['filters']['field_job_status_value']['group'] = 1;

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'jobtest';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Job Search';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'main-menu';
$handler->display->display_options['menu']['context'] = 0;
$handler->display->display_options['menu']['context_only_inline'] = 0;

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->display->display_options['defaults']['access'] = FALSE;
$handler->display->display_options['access']['type'] = 'none';
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'job' => 'job',
);
$handler->display->display_options['filters']['type']['group'] = 1;
/* Filter criterion: Field: Industry Sector (field_sector) */
$handler->display->display_options['filters']['field_sector_tid']['id'] = 'field_sector_tid';
$handler->display->display_options['filters']['field_sector_tid']['table'] = 'field_data_field_sector';
$handler->display->display_options['filters']['field_sector_tid']['field'] = 'field_sector_tid';
$handler->display->display_options['filters']['field_sector_tid']['group'] = 1;
$handler->display->display_options['filters']['field_sector_tid']['exposed'] = TRUE;
$handler->display->display_options['filters']['field_sector_tid']['expose']['operator_id'] = 'field_sector_tid_op';
$handler->display->display_options['filters']['field_sector_tid']['expose']['label'] = 'Sector';
$handler->display->display_options['filters']['field_sector_tid']['expose']['operator'] = 'field_sector_tid_op';
$handler->display->display_options['filters']['field_sector_tid']['expose']['identifier'] = 'field_sector_tid';
$handler->display->display_options['filters']['field_sector_tid']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
);
$handler->display->display_options['filters']['field_sector_tid']['type'] = 'select';
$handler->display->display_options['filters']['field_sector_tid']['vocabulary'] = 'industry_sector';
/* Filter criterion: Content: Has taxonomy terms (with depth; <em class="placeholder">Simple hierarchical select</em>) */
$handler->display->display_options['filters']['shs_term_node_tid_depth']['id'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['table'] = 'node';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['field'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['value'] = 'All';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['group'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['exposed'] = TRUE;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['operator_id'] = 'shs_term_node_tid_depth_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['label'] = 'Location';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['operator'] = 'shs_term_node_tid_depth_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['identifier'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
);
$handler->display->display_options['filters']['shs_term_node_tid_depth']['vocabulary'] = 'location';
$handler->display->display_options['filters']['shs_term_node_tid_depth']['hierarchy'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth']['depth'] = '1';
/* Filter criterion: Content: Has taxonomy terms (with depth; <em class="placeholder">Simple hierarchical select</em>) */
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['id'] = 'shs_term_node_tid_depth_2';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['table'] = 'node';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['field'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['value'] = 'All';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['group'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['exposed'] = TRUE;
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['operator_id'] = 'shs_term_node_tid_depth_2_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['label'] = 'Job Type';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['operator'] = 'shs_term_node_tid_depth_2_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['identifier'] = 'shs_term_node_tid_depth_2';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
);
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['vocabulary'] = 'job_types';
$handler->display->display_options['filters']['shs_term_node_tid_depth_2']['depth'] = '1';
/* Filter criterion: Content: Has taxonomy terms (with depth; <em class="placeholder">Simple hierarchical select</em>) */
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['id'] = 'shs_term_node_tid_depth_1';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['table'] = 'node';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['field'] = 'shs_term_node_tid_depth';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['value'] = 'All';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['group'] = 1;
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['exposed'] = TRUE;
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['operator_id'] = 'shs_term_node_tid_depth_1_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['label'] = 'Renumeration';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['operator'] = 'shs_term_node_tid_depth_1_op';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['identifier'] = 'shs_term_node_tid_depth_1';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['expose']['remember_roles'] = array(
  2 => '2',
  1 => 0,
  3 => 0,
  4 => 0,
  5 => 0,
  6 => 0,
);
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['vocabulary'] = 'renumeration';
$handler->display->display_options['filters']['shs_term_node_tid_depth_1']['depth'] = '1';
/* Filter criterion: Content: Status (field_job_status) */
$handler->display->display_options['filters']['field_job_status_value']['id'] = 'field_job_status_value';
$handler->display->display_options['filters']['field_job_status_value']['table'] = 'field_data_field_job_status';
$handler->display->display_options['filters']['field_job_status_value']['field'] = 'field_job_status_value';
$handler->display->display_options['filters']['field_job_status_value']['operator'] = 'not';
$handler->display->display_options['filters']['field_job_status_value']['value'] = array(
  1 => '1',
);
$handler->display->display_options['path'] = 'jobs-archive';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Jobs Archive';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'main-menu';
$handler->display->display_options['menu']['context'] = 0;
$handler->display->display_options['menu']['context_only_inline'] = 0;
Anonymous’s picture

I'll need this for a production site fairly soon and this bug has thrown a bit of a spanner in the works. Do we have a maintainer who is available for testing?

jphelan’s picture

I'm having the same issue.

ssoulless’s picture

Status: Active » Needs work

Same here, this module has a lot of problems... preffer the normal hierarchical select

ssoulless’s picture

Issue summary: View changes

Added link to other issue

wouhn’s picture

Same here

fornandakishore’s picture

Issue summary: View changes

Still the issue exists?

I am also facing the same issue, I have two exposed dropdown filters and I want to make them allow multiple, but only the first shs dropdown is working well for multiple select and rest of the dropdowns are not working.

caspervoogt’s picture

Same thing here. I solved this by setting the Filter Identifier to a unique machine name for each of my view displays.
The default Filter Identifier is shs_term_node_tid_depth. I left that alone for my first view display, but the on my second view display set it to shs_term_node_tid_depth_staff (since it was a view listing staff members). This cleared it up for me (after clearing all caches, of course).

I have attached a screenshot showing where this setting lives.

caspervoogt’s picture

Status: Needs work » Needs review
stBorchert’s picture

Thanks for the suggested solution.
.
Btw. ... did any of you tried the latest development version?

caspervoogt’s picture

I have not tried the dev version, no.

stBorchert’s picture

Version: 7.x-1.6 » 7.x-1.x-dev
Status: Needs review » Fixed

I've tested this right now with the latest development version on a clean installation.
When adding 2 exposed filters with "Has taxonomy terms (with depth; Simple hierarchical select)", Views automatically appends a numeric index to the filter identifier of the second filter.
Both filters work.

Additionally I created a panel page that prints the view two times: in both instances all the filters worked.

Seems to be fixed ...

caspervoogt’s picture

Interesting, so maybe a release will be cut soon.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

subadmin’s picture

Hello everyone

I have the same issue on my site http://mpaproperty.com/demo/ here you can see on top i am using quick-tab there is Residential , Commercial and Land tab and all have views and exposed file with SHS.

there is problem with Commerical and Land same SHS setting apply to Residential and it works.

Please help me out in this, i am stuck since last 3 days, i can share views link with admin access to solve the problem

Thanks in advance

caspervoogt’s picture

subadmin, are you using 7.x-1.x-dev?

'I solved this by setting the Filter Identifier to a unique machine name for each of my view displays.' That should also work.

subadmin’s picture

Hello Caspervoogt

I have not install dev version, i am using 7.x-1.6
and your mention point under your attach image is already done on my side

in shs-filter-identifier i have shs_term_node_tid_depth and shs_term_node_tid_depth_1 and shs_term_node_tid_depth_2 as i already mention above Residential tab works fine but other two are not Commercial and Land

so please check it on my site again http://www.mpaproperty.com/demo/ and tell me what i need to do, should i change my shs module version

Thank you

subadmin’s picture

Assigned: Unassigned » subadmin
Status: Closed (fixed) » Active
caspervoogt’s picture

I see you are using unique identifiers, which is good. I would suggest switching to the dev branch of the code, and re-testing.

waqarit’s picture

Using dev branch of code doesn't solve the problem.

caspervoogt’s picture

@waqariz, do your selects have unique identifiers?

waqarit’s picture

@caspervoogt, yes I have unique identifiers.

caspervoogt’s picture

I don't know what to tell you in that case. I thought that was the issue on my end .. and making them unique did seem to solve it for me.

Gunfigter100’s picture

I have a similar situation. I have a view with two fields using exposed filters. They both have unique filter identifiers, yet only the first exposed filter's values are being used in the query. In my investigation I found that there is a flaw/oversight in the updateFieldValue function of shs.js in the latest dev version (7.x-1.6+73-dev). Line 506 is as follows:

var prev_value = $('.shs-select:eq(' + i + ')').val();

What I discovered is that since there are two controls that have the ".shs-select" class, that looking for the "i" instance of the class caused the first control to be selected even if the change was made in the second control. If both first and second controls had selected values then the exposed filter worked as intended. But if only one had a selected value that value was always assumed to come from the first control. I fixed this problem for myself by rewriting the line to look for the control by id rather than by class:

var prev_value = $('#' + base_id + '-select-' + (i + 1)).val();

This solution likely needs more testing and may not work in all cases. So far though it has worked for me.

gngn’s picture

Status: Active » Needs review
FileSize
450 bytes

I made a patch to #23
We had this working for quite some time.