【问题标题】:Update a Chosen multiple select field with a localStorage variable使用 localStorage 变量更新选择的多选字段
【发布时间】:2017-08-09 14:54:35
【问题描述】:

我有一个选择的多项选择字段,我将用户的选择保存在 localstorage.language_request 中。当用户回来时,我需要用以前的选择更新该字段。

我的 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");
}

Chosen 字段(在 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_request 等于 ["FR,EN"]。它将所有选择保存到一个字符串中。并且要更新 Chosen 字段,我需要将此数组格式化为 ["FR","EN"] (选择一个字符串)。

【问题讨论】:

  • 你有没有想过简单地分割字符串?
  • 好主意@scriptify 我试过了,显然它正在工作。我会做一些测试来确定。

标签: javascript jquery ruby-on-rails ruby jquery-chosen


【解决方案1】:

我不得不像这样使用 split 方法更新我的代码:

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

【讨论】:

    【解决方案2】:

    这里,你需要修改代码

    $('.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" 并且您直接将其推送。因此,吐出字符串将对您有所帮助。

    【讨论】:

    • 谢谢,我的代码有这个错误Uncaught TypeError: language_request_brut.split is not a function
    猜你喜欢
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多