Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将选定选项附加到选择器_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript 将选定选项附加到选择器

Javascript 将选定选项附加到选择器,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我在ERB有两个选择器。他们使用选择的插件: <%= select_tag :provinces, options_for_select(DataHelper::all_provinces_captions.zip(DataHelper::all_provinces_ids)), {:multiple => true, class: 'chosen-select chzn-select', :data => {:placeholder => 'Filte

我在ERB有两个选择器。他们使用选择的插件:

<%= 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'}}
%>
  <%= f.select :province_ids,
  (DataHelper::all_provinces_captions.zip(DataHelper::all_provinces_ids)),
  { include_blank: true }, 
  {multiple: true, data: {placeholder: 'Filter Provinces/States'} }
%>
我试图将选项从一个选择器复制到另一个选择器,同时保持所选选项仍处于选中状态,但它不起作用。以下是我尝试过的Javascript函数:

var selectedVals = [];

$(".chzn-select").chosen().change(function() {
  $("#provinces option:selected").each(function () {
    console.log ("this value is " + ($(this).val()));
    selectedVals.push($(this).val());
  });
  $("#education_plan_province_ids").empty();
  for (var i = 0; i < selectedVals.length; i++) {
    console.log (selectedVals[i] + " selected");
    $("#education_plan_province_ids").append($("<option>" + selectedVals[i] + "</option>").attr('selected', true));
  }
  selectedVals = [];
});
是否有其他替代属性“选定”,对吗?

给您:

$(".chzn-select").chosen().change(function() { 
    $("#education_plan_province_ids").empty(); 
    $("#provinces option:selected").each(function () {
         $("#education_plan_province_ids").append($("<option>" + this.value + "</option>").prop('selected', true)); 
    });
});
我在这里使用道具,并摆脱了额外的阵列,我认为这是不必要的,但你可以使用它,如果你想。此外,选项的括号位置错误。

给你:

$(".chzn-select").chosen().change(function() { 
    $("#education_plan_province_ids").empty(); 
    $("#provinces option:selected").each(function () {
         $("#education_plan_province_ids").append($("<option>" + this.value + "</option>").prop('selected', true)); 
    });
});

我在这里使用道具,并摆脱了额外的阵列,我认为这是不必要的,但你可以使用它,如果你想。此外,选项的括号位置错误。

请尝试使用此$.chzn-select.selected.changefunction{$education\u plan\u province\u ids.empty;$provinces option:selected.eachfunction{$education\u plan\u province\u ids.append$+this.value+.prop'selected',true;};我认为您的问题在于“$education\u plan\u province\u ID.append$+selectedVals[I]+.attr'selected',true;”中的括号位置必须添加到选项元素,而不是父元素,如下“$education\u plan\u province\u ID.append$+selectedVals[I]+.attr'selected',true;'我会编辑它,谢谢!但是问题仍然存在@mdameer@bipen我试试看,马上就来you@bipen这是正确的答案!你能把它贴出来让我把它标记为正确的吗?试试这个$.chzn-select.selected.change函数{$education\u plan\u province\u ids.empty;$provinces选项:selected.eachfunction{$education\u plan\u province\u ids.append$+this.value+.prop'selected',true;};我认为您的问题在于“$education\u plan\u province\u ids.append$+selectedVals[I]中的括号位置+.attr'selected',true;'必须添加到选项元素,而不是父元素,如下“$education\u plan\u province\u ids.append$+selectedVals[i]+.attr'selected',true;'我会编辑它,谢谢!但是问题仍然存在@mdameer@bipen我试试看,马上就来you@bipen那是正确的答案!你能把它贴出来让我把它标为正确的吗?