1

私はドキュメント マネージャー用の Web アプリを設計しています。「設定」ページがあり、ユーザーには、iPhone のトグル ボタンのようにフォーマットされたチェックボックスのペアが表示されます。それらはすべて機能しますが、ユーザーが Web サイトを離れるか、ページを更新すると、これらのボタンの状態はデフォルトにリセットされます。localStorageを使用してそれらの状態を保存する方法はありますか、それともCookieを使用する必要がありますか? JavaScript ファイルの編集(以下に示すコード) には、saveSettingsと呼ばれる 1 つともう 1 つのloadSettingsという 2 つの関数がありますが、1つの関数ですべてを行う必要がある場合は教えてください。編集の終わりどんな助けでも大歓迎です。これまでのところ、私は持っています。

localStorage.CheckboxName = $('#CheckboxName').val();

チェックボックスをlocalStorageに保存します。

$('#CheckboxName').val(localStorage.CheckboxName);

しかし、それは保存されません。私は何か間違ったことをしていますか?

編集

2 つのチェックボックスの HTML コードを次に示します。

<li style = 'color: #FFFFFF;'>Notifications<span class = 'toggle'><input type = 'checkbox' class = 'toggle' name = 'notifications' id = 'notifications' /></span></li>
<li style = 'color: #FFFFFF;'>Preview<span class = 'toggle'><input type = 'checkbox' class = 'toggle' name = 'preview' id = 'preview' checked = "true" /></span></li>

編集の終わり

どんな助けでも素晴らしいでしょう、事前に感謝しますx

4

3 に答える 3

0

アイテムを保存するには、ストアが文字列のみを保持することを覚えておいてください。

例えば。

var val = $('#CheckboxName').val();
window.localStorage.setItem(key, JSON.stringify(val));

したがって、値を読み戻すときは、文字列を逆シリアル化する必要があります。

var str = window.localStorage.getItem(key);
var obj = $.parseJSON(str);

または、必要に応じて文字列比較を行うこともできます。私が行うのは、IDと値のペアのオブジェクトを1つのストレージキーに格納し、それらすべてを逆シリアル化して適切なオブジェクトで動作させることです。

例えば。

var val = {
    CheckboxName1: true,
    CheckboxName2: false,
    CheckboxName3: false, // ect....
};
window.localStorage.setItem(key, JSON.stringify(val));
于 2012-10-11T10:32:32.520 に答える
0

よくわかりませんが、私はいつも次のようだと信じていました。

window.localStorage.setItem('CheckboxName', $('#CheckboxName').val());

$('#CheckboxName').val(window.localStorage.getItem('CheckboxName'));
于 2012-10-11T10:15:14.313 に答える
0

次のことを試すことができます

$("#CheckboxName").is(':checked')?'checked':'not' 出力を保存します。ここで提案されているようです: ローカル ストレージを使用して、アイテムをフィルタリングするためのチェックボックスの状態を保持する方法

于 2012-10-11T10:15:33.337 に答える