javascript - Rails UJS: trigger different urls for remote: true select element depending on option selected -


i have select element this:

<%= select_tag :filter_id, options_for_select( [ ["edit filter", 0, data: { url: edit_filter_path} ], ["contact 1", 1], "contact 2", 2] ), data: { remote: true, url: contacts_path } %> 

for of options selected, correctly goes contacts controller. however, if user selects "edit filter", want go different controller.

as stated in answer wrote few months ago, rails ujs defines member variable called inputchangeselector , listen specific events on form control selectors data-remote attribute:

inputchangeselector: 'select[data-remote], input[data-remote], textarea[data-remote]', 

it uses concept of custom events:

$document.delegate(rails.inputchangeselector, 'change.rails', function(e) { 

so when select element changed, fires 'change.rails' custom event.

now there list of custom events fired before ajax request happens, listed here. 1 of called ajax:beforesend. how can stop current date: remote event , create new data: remote event point different data-url?

i thought this:

$card_holder.on('ajax:beforesend', '.card-filter', function(event, xhr, settings) {      if( $select.val() == "0" ){          // stop current ajax request contacts controller          event.stoppropagation();          performrequesttodifferentcontroller();      } } 

the above doesn't work. event never stopped. still goes contacts controller. maybe don't understand stoppropagation()? why event continue happen?


Comments