2016-07-21 36 views
0

我在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 = []; 
}); 

attr('selected', true)是否有另一種替代方案?

+0

試試這個'$(「.chzn-select」)。chosen()。change(function(){$(「#education_plan_province_ids」)。empty(); $(「#provinces option:selected」) .each(function(){(「#education_plan_province_ids」)。append($(「」).prop('selected',true)); });' – bipen

+0

I認爲你的問題是'$(「#education_plan_province_ids」)中的括號位置。append($(「」))。attr('selected',true);'必須加上選項元素不是父元素,如下所示:$(「#education_plan_province_ids」)。append($(「」).attr('selected',true));' – mdameer

+0

我會編輯它,謝謝!然而,問題仍然存在@mdameer –

回答

2

在這裏你去:

$(".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)); 
    }); 
}); 

我使用prop這裏,擺脫額外的陣列(我認爲這是沒有必要,但如果你願意,你可以使用它)。 option也出現在錯誤位置的括號。 ()#

相關問題