【发布时间】:2014-10-01 18:28:12
【问题描述】:
我正在使用本地存储来允许用户在提交表单后返回到表单,并使用保留的先前值进行修改。
我成功地使用了 jQuery Storage Api(用于 set() 和 get()),但只能为每个表单元素写出长手,并不理想。相反,我想将所有表单元素 id 推送到一个数组并循环遍历该数组。第一部分,推送到数组,就像一个魅力,但我使用的 for 循环不起作用。
我打算使用 jQuery .each() 函数,但想了解为什么我的循环首先不起作用。谢谢。
(function() {
var selectArray = [];
// Getting select ids
$("select").each(function() {
selectArray.push($(this).attr("id"));
});
// Using Local Storage Api
var storage = $.localStorage;
for (var i = 0; i < selectArray.length; i++){
// Get select element
$("#" + selectArray[i]).val(storage.get(selectArray[i]));
// Set select element
$("#" + selectArray[i]).change(function() {
var selectValue = $("#" + selectArray[i]).val();
storage.set(selectArray[i], selectValue);
});
// Check loop is working
console.log(i + ". " + selectArray[i]);
}
}());
资源:
- jQuery v1.11.0
- jQuery Storage API
【问题讨论】:
-
$("#" + selectArray[i].change( => $("#" + selectArray[i]).change(
-
我还没有修复它,但我认为我正在遭受循环内的功能。
-
同样在更改事件中,您为什么要从 selectArray 中获取值?不应该从选择中获取吗?
-
@artm 感谢您的错字。将不得不考虑 select/selectArray。我的意图是像以前一样使用 id 来获取值。
标签: javascript jquery forms local-storage