Javascript 将选定选项附加到选择器
我在ERB有两个选择器。他们使用选择的插件: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
<%= 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那是正确的答案!你能把它贴出来让我把它标为正确的吗?