0

キー 1 のローカル ストレージ値を取得しようとしていますが、チェックボックスがオンになっているチェックボックスの値として設定されますが、javascript 関数によって返される値はローカル ストレージの [オブジェクト オブジェクト] として表示されます。事前に感謝します。

<html>

<head>

<script type="text/javascript">


function topic_1_status(){

var status = {
    get_value: function(){
         return this.value;
                    }

            };

localStorage.setItem(1, status);


}


</script>

</head>

<body>

<div>Topic no.1   </div>
<form action="">
<input type="checkbox" value="learnt" onclick="topic_1_status()" /> Learnt
<input type="checkbox" value="memorised" onclick="topic_1_status()" /> Memorised
<input type="checkbox" value="understood" onclick="topic_1_status()" /> Understood
<input type="checkbox" value="unlearned" onclick="topic_1_status()" /> Unlearned


</body>

</html>
4

2 に答える 2

1

チェックボックスの値の代わりにオブジェクトの「ステータス」を保存しているため、「オブジェクトオブジェクト」を取得しています。

この変更により、必要な結果が得られるはずです。

 **On the html where you call your javascript** 
 <input type="checkbox" value="learnt" onclick="topic_1_status(this);" />
 **As you can see above im passing 'this' to the function

そしてジャバスクリプト

 //On the javascript
 function topic_1_status(elem){
     if(!elem.checked){//You may also want to check that you are checking it rather than unchecking
        var checkboxValue = elem.value;
        localStorage.setItem(1,checkboxValue);
     }
 }

また、一度に 1 つのアイテムのみを保存する予定であるため、チェックボックスの代わりにラジオ ボタンを使用したいと考えているようです。

于 2012-09-01T18:37:25.860 に答える
0

コードは値をstatusに設定しています。ステータスは複雑なオブジェクトです。ローカルストレージは文字列のみを保存できます。通常、事前にJSONにシリアル化しますが、それは実際にはここで必要なことではありません。localStorage.setItem(1、this.value);を実行したいだけだと思います。ただし、4つの異なるチェックボックスにバインドし、常に1つの値「1」に書き込むことに注意してください。私はあなたがそれをしたいとは思わない。

于 2012-09-01T18:20:58.217 に答える