in ruby-on-rails, using chosen plugin on multiselector list of provinces below:
<%= select_tag :provinces, options_for_select(datahelper::all_provinces_captions.zip(datahelper::all_provinces_ids)), {:multiple => true, class: 'chosen-select chzn-select', :data => {:placeholder => 'filter provinces/states'}}%>
i have selector in form field on same page so:
<%= f.select :province_ids, (datahelper::all_provinces_captions.zip(datahelper::all_provinces_ids)), { include_blank: true }, { multiple: true, data: {placeholder: 'filter provinces/states'} } %>
finally, have javascript function synchronizes 2 when #provinces, class .chzn-select changes:
var selectedvals = []; $(".chzn-select").chosen().change(function() { $("#provinces option:selected").each(function () { console.log ("this value " + ($(this).val)); selectedvals.push($(this).val); }); $("#education_plan_province_ids").empty(); (var = 0; < selectedvals.length; i++) { console.log (selectedvals[i] + " selected"); $("#education_plan_province_ids").append($("<option>" + selectedvals[i] + "</option>")).prop("selected", true); } });
however, in console, instead of getting output, "this value alabama" example, following:
this value function (a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isfunction(a),this.each(function(c){var e;1===this.nodetype&&(e=d a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e e+="":n.isarray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valhooks[this.type]||n.valhooks[this.nodename.tolowercase( ],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valhooks[e.type]||n.valhooks[e.nodename.tolowercase()],b&&"get"in b&&void 0!= (c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c c.replace(bc,""):null==c?"":c)}}
so not surprisingly, confused why happening! final piece of info, here all_provinces_captions, all_provinces_ids, canada_provinces_with_caption, , usa_provinces_with_caption in datahelper, arrays:
def self.usa_provinces_with_caption [["alabama", "alabama"], ["alaska", "alaska"], ["arizona", "arizona"], ["arkansas", "arkansas"], ["california", "california"], ["colorado", "colorado"], ["connecticut", "connecticut"], ["delaware", "delaware"], ["district of columbia", "district of columbia"], ["florida", "florida"], ["georgia", "georgia"], ["hawaii", "hawaii"], ["idaho", "idaho"], ["illinois", "illinois"], ["indiana", "indiana"], ["iowa", "iowa"], ["kansas", "kansas"], ["kentucky", "kentucky"], ["louisiana", "louisiana"], ["maine", "maine"], ["maryland", "maryland"], ["massachusetts", "massachusetts"], ["michigan", "michigan"], ["minnesota", "minnesota"], ["mississippi", "mississippi"], ["missouri", "missouri"], ["montana", "montana"], ["nebraska", "nebraska"], ["nevada", "nevada"], ["new hampshire", "new hampshire"], ["new jersey", "new jersey"], ["new mexico", "new mexico"], ["new york", "new york"], ["north carolina", "north carolina"], ["north dakota", "north dakota"], ["ohio", "ohio"], ["oklahoma", "oklahoma"], ["oregon", "oregon"], ["pennsylvania", "pennsylvania"], ["rhode island", "rhode island"], ["south carolina", "south carolina"], ["south dakota", "south dakota"], ["tennessee", "tennessee"], ["texas", "texas"], ["utah", "utah"], ["vermont", "vermont"], ["virginia", "virginia"], ["washington", "washington"], ["west virginia", "west virginia"], ["wisconsin", "wisconsin"], ["wyoming", "wyoming"]] end def self.canada_provinces_with_caption [["alberta", "alberta"], ["british columbia", "british columbia"], ["manitoba", "manitoba"], ["new brunswick", "new brunswick"], ["newfoundland", "newfoundland"], ["northwest territories", "northwest territories"], ["nova scotia", "nova scotia"], ["nunavut", "nunavut"], ["ontario", "ontario"], ["prince edward island", "prince edward island"], ["quebec", "quebec"], ["saskatchewan", "saskatchewan"], ["yukon", "yukon"]] end def self.all_provinces_captions usa_provinces_with_caption.map { |x| x.first } + canada_provinces_with_caption.map { |x| x.first } end def self.all_provinces_ids usa_provinces_with_caption.map { |x| (province.find_by name: x.first).id} + canada_provinces_with_caption.map { |x| (province.find_by name: x.first).id } end
it looks missing parenthesis .val method. try following:
$(this).val()
Comments
Post a Comment