您好我正在尝试保存一些输入[type =" text"]并在本地存储中输入[type =" hidden"]值。以下是JS:
$('.proceed_btn').on('click', function(){
$('input[type="text"]').each(function(){
var id = $(this).attr('id');
var value = $(this).val();
localStorage.setItem(id, value);
});
$('input[type="hidden"]').each(function(){
var id = $(this).attr('id');
var value = $(this).val();
localStorage.setItem(id, value);
});
});
价值得到了完美的存储。但我想以json格式存储这些值。但是如何将这两个值保存在一个变量中。例如:
order: {
id: '',
product: '',
service: '',
name: ''
}
我已经检查了JSON stringify但是如何一起实现不同类型的输入
答案 0 :(得分:1)
只需构建一个对象然后stringify
即可。例如,如果我假设您的name
元素的input
是您要在对象上使用的名称:
$('.proceed_btn').on('click', function(){
// Blank to start with
var order = {};
// Loop through all inputs...
$('input[type="text"], input[type="text"]').each(function(){
// ...adding their values as properties
order[this.name] = this.value;
});
// Store that object in JSON format
localStorage.setItem("order", JSON.stringify(order));
});
稍后如果要检索它并根据其值设置输入:
var order = JSON.parse(localStorage.getItem("order") || "null");
if (order) {
$('input[type="text"], input[type="text"]').each(function(){
if (this.name in order) {
this.value = order[this.name];
} else {
this.value = "";
}
});
}
答案 1 :(得分:0)
编写localstorage时只有2个参数:
离。 localStorage.setItem('car',car); 第一个参数实际上是键,第二个参数是值;
你已经通过了3个错误的参数。
如果可以在localstorage中存储多个值,请创建该值的对象并将该对象写入localstorage:
cqlsh
答案 2 :(得分:0)
我认为这会有所帮助。
var objectToSave = {};
$('.proceed_btn').on('click', function(){
$('input[type="text"],input[type="hidden"]').each(function(){
var elem = $(this);
var id = elem.attr('id');
var value = elem.val();
objectToSave[id] = value;
});
localStorage.setItem('order', JSON.stringify(objectToSave));
});