我正在尝试保存/检索表单中所有输入字段的值。不幸的是,这不起作用。
令人沮丧的部分是我不知道什么是错的。我已经测试了类型:键和值都是字符串。事件已正确附加,console.log
被触发
您是否在此代码中看到任何令您惊讶的内容?为什么没有保存或检索值?
(function ($) {
if (typeof (window.localStorage) != "undefined") {
$.each($("#myform input[type=text]"), function () {
localStorage.getItem($(this).attr("id"));
});
$("#myform input[type=text]").live("change", function () {
localStorage.setItem($(this).attr("id"), $(this).val());
});
}
})(jQuery);
当然,我在支持网络存储的浏览器中进行测试,每个输入都有一个id。
答案 0 :(得分:1)
从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应该使用.delegate()而不是.live()。
(来自JQuery文档)
所以我的猜测是你有两个选择:
$("#myform input[type=text]").on("change", function () {
localStorage.setItem($(this).attr("id"), $(this).val());
});
或
$("#myform input[type=text]").delegate("change", function () {
localStorage.setItem($(this).attr("id"), $(this).val());
});
答案 1 :(得分:0)
.live()
已在1.9中删除,已弃用于1.7 $(this).val(localStorage.getItem($(this).attr("id")))
循环中没有看到任何值setter each
来填充值。