0

我正在尝试保存/检索表单中所有输入字段的值。不幸的是,这不起作用。
令人沮丧的是,我不知道出了什么问题。我已经测试了类型:键和值都是字符串。事件被正确附加,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。

4

2 回答 2

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());
 });
于 2013-11-06T16:37:25.317 回答
0
  1. .live()在 1.9 中删除并从 1.7 中弃用
  2. $(this).val(localStorage.getItem($(this).attr("id")))在第一个each循环中看不到任何值设置器来填充值。
于 2013-11-06T16:39:35.017 回答