Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 使用localStorage变量更新选定的多选字段_Javascript_Jquery_Ruby On Rails_Ruby_Jquery Chosen - Fatal编程技术网

Javascript 使用localStorage变量更新选定的多选字段

Javascript 使用localStorage变量更新选定的多选字段,javascript,jquery,ruby-on-rails,ruby,jquery-chosen,Javascript,Jquery,Ruby On Rails,Ruby,Jquery Chosen,我有一个selected multiple select字段,并将用户的选择保存在localstorage.language\u请求中。当用户回来时,我需要用前面的选项更新字段 My JS保存用户选择的选项: $('.calcul_checkout').on("change keyup", function(){ var language_request_brut = $('#language_request').val(); var language_request = []; j

我有一个selected multiple select字段,并将用户的选择保存在localstorage.language\u请求中。当用户回来时,我需要用前面的选项更新字段

My 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;
}
当用户返回页面时,我需要使用之前选择的选项更新所选字段

if (localStorage.language_request != null){ 
 $("#language_request").val(localStorage.language_request).trigger("chosen:updated");
}
Rails中选择的字段:

<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>

问题是localStorage.language_请求等于[FR,EN]。将所有选项保存到一个字符串中是非常困难的。要更新所选字段,我需要选择将该数组格式化为[FR,EN]一个字符串

在这里,您需要从

$('.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\u request'。val函数将值返回为FR,EN,您可以直接推送它。因此,吐字符串将对您有所帮助。

我必须使用拆分方法更新代码,如下所示:

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

你想过简单地拆分字符串吗?好主意@scriptify我试过了,很明显它正在工作。我会做一些测试来确定。谢谢,我在你的代码中有一个错误未捕获类型错误:语言\u请求\u brut.split不是一个函数