- ベストアンサー
JavaScriptでフォーム内容をCookieに入れて戻す方法
- フォームの内容をJavaScriptで上から順番にCookieに保存し、再びフォームに戻す方法を教えてください。
- JavaScriptを使用して、フォームに入力された内容を上から順番にCookieに保存し、次回ページを読み込んだ際に再びフォームに戻せる方法を知りたいです。
- JavaScriptを利用して、フォームに入力された内容を上から順番にCookieに保存しておき、後でこの情報を再度フォームに戻すための方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
<form name="Form">などとフォームに名前をつけておき、 document.Form.elements[0].value = unescape(cook[0]); とやれば戻せるのでは? ラジオボタンやチェックボックス、リストなどの場合でしたら、ひとつひとつの値をcookieと比較して、一致する場合にcheckedやselectedにするって感じですかね。 私は要素名を使ってこんな感じで書いています。 テキストボックス、ラジオボタン、セレクトボックスのそれぞれの処理例です。 // Cookie出力 function getCookie(){ 中略(クッキーを配列cookに取得) document.Form.V1.value = unescape(cook[0]); h = document.Form.V2.length; for (i=0; i < j; i++) { if (document.Form.V2[i].value == cook[1]) { document.Form.V2[i].checked = true; } } j = document.Form.V2.length; for (k=0; k < j; k++) { if (document.Form.V2[k].value == cook[2]) { document.Form.V2[j].selected = true; } } } フォーム <form name="Form" onsubmit="saveCookie(V1.value,V2.value,V3.value)"> <input type="text" name="V1"> <input type="radio" name="V2" value="1"> <input type="radio" name="V2" value="2"> <select name="V3"> <option value="1">1 <option value="2">2 <option value="3">3 <input type="submit" value="送信"> </select> </form> ご参考になりましたら幸いです。
お礼
ありがとうございます。出来ました! いいとこまでは行ってたんですが、フォーム名なしで下記のようにしてたのがダメな原因でした。 名前付けたら出来ました。 document.this.form.elements[0].value = unescape(cook[0]); 教えてもらったままだとCookieが無い場合「undefined」と表示されていたので下記のようにしました。 if (cook[0]) document.form.elements[0].value = unescape(cook[0]); ラジオボタンやチェックボックスの使い方もありがとうございます。参考にさせてもらいます。 また質問することがあるかと思いますが、その時はよろしくお願いします。 では失礼します。
補足
お礼を書いてから気づいたのですが、フォームの名前を付けずに下記でも出来ました。 document.forms[0].elements[0].value = unescape(cook[0]); でも名前付けた方がわかりやすいですね。