2017-08-09 143 views
0

我有一个选定的多个选择字段,我将用户的选择保存在localstorage.language_request中。当用户回来时,我需要用先前的选择更新字段。使用localStorage变量更新选择的多个选择字段

我的JS保存用户所选择的选项:

$('.calcul_checkout').on("change keyup", function(){ 
    var language_request_brut = $('#language_request').val(); 
    var language_request = []; 
    jQuery.each(language_request_brut, function(i, val){ 
      language_request.push(val) 
}); 
    localStorage.language_request = language_request; 
} 

我的JS当页面上的用户的回报,我需要更新的选择选择的领域之前选择的

if (localStorage.language_request != null){ 
$("#language_request").val(localStorage.language_request).trigger("chosen:updated"); 
} 

所选择的字段(在导轨):

<span> 
<%= select_tag(:language_request, options_for_select([['Français', 'FR'], 
    ['Anglais', 'EN'], 
    ['Italien', 'IT'], 
    class:"answer language_request calcul_checkout chosen-select", multiple: true) %> 
</span> 

的概率lem, localStorage.language_request等于[“FR,EN”]。它将所有选项保存到一个字符串中。为了更新Chosen字段,我需要将这个数组格式化为[“FR”,“EN”](一个字符串)。

+0

你有没有想过简单地拆分字符串? – scriptify

+0

好主意@scriptify我试过了,显然它工作。我会做一些测试,以确保。 – Blueone

回答

0

我不得不更新我这样的代码与分裂梅索德:

if (localStorage.language_request != null){ 
     $("#language_request").val(localStorage.language_request.split(",")).trigger("chosen:updated"); 
     } 
0

在这里,你需要从

$('.calcul_checkout').on("change keyup", function(){ 
    var language_request_brut = $('#language_request').val(); 
    var SelectedLanguage = language_request_brut.split(","); 
    var language_request = []; 
    for(i=0;i<SelectedLanguage.length;i++) 
    { 
      language_request.push(SelectedLanguage[i]) 
    } 
    localStorage.language_request = language_request; 
} 

更改代码这将帮助你,因为$( '#language_request')。VAL()函数返回值 “FR,EN”,并直接推入。所以spiting string会帮助你。

+0

谢谢,我的代码中有这个错误'Uncaught TypeError:language_request_brut.split不是一个函数' – Blueone