使用 localStorage 变量更新 Chosen multiple select 字段
Update a Chosen multiple select field with a localStorage variable
我有一个选择多个 select 字段,我将用户的选择保存在 localstorage.language_request 中。当用户回来时,我需要用以前的选择更新字段。
我的 JS 保存由用户select编辑的选择:
$('.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;
}
当用户 return 在页面上时我的 JS,我需要使用之前 select 编辑的选择更新选择字段
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_request等于["FR,EN"]。它将所有选择保存到一个字符串中。为了更新 Chosen 字段,我需要将此数组格式化为 ["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_request').val() 函数 returns 值作为 "FR,EN" 并且你将它推入 directly.So spiting string will帮到你
我不得不用拆分方法像这样更新我的代码:
if (localStorage.language_request != null){
$("#language_request").val(localStorage.language_request.split(",")).trigger("chosen:updated");
}
我有一个选择多个 select 字段,我将用户的选择保存在 localstorage.language_request 中。当用户回来时,我需要用以前的选择更新字段。
我的 JS 保存由用户select编辑的选择:
$('.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;
}
当用户 return 在页面上时我的 JS,我需要使用之前 select 编辑的选择更新选择字段
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_request等于["FR,EN"]。它将所有选择保存到一个字符串中。为了更新 Chosen 字段,我需要将此数组格式化为 ["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_request').val() 函数 returns 值作为 "FR,EN" 并且你将它推入 directly.So spiting string will帮到你
我不得不用拆分方法像这样更新我的代码:
if (localStorage.language_request != null){
$("#language_request").val(localStorage.language_request.split(",")).trigger("chosen:updated");
}