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);

もちろん、Web ストレージをサポートするブラウザーでテストしており、すべての入力に ID があります。

4

2 に答える 2

1

jQuery 1.7 以降、.live() メソッドは非推奨になりました。.on() を使用して、イベント ハンドラーをアタッチします。古いバージョンの jQuery のユーザーは、.live() よりも .delegate() を使用する必要があります。

(JQuery のドキュメントから)

したがって、私の推測では、次の 2 つのオプションがあります。

$("#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 に答える