フォーム入力内容をクッキーに保存(document.cookie, escape, unescape)
<html> <head> <title>フォーム入力内容をクッキーに保存</title> <script language="JavaScript"> <!-- cookiename = "form"; // クッキー名 life = 30; // クッキーの保存日数 element = new Array("name", "mail"); // 保存するエレメント名 function getcookie() { // クッキー読み込み cookie = ""; cookie1 = document.cookie.split("; "); // "; "で分割 for(i = 0 ; i < cookie1.length ; i++) { cookie2 = cookie1[i].split("="); // "="で分割 if(cookie2[0] == cookiename) { cookie = cookie2[1]; } } if(cookie != "") { cookie3 = cookie.split("&"); // "&"で分割 for(i = 0 ; i < element.length ; i++) { for(j = 0 ; j < document.form.length ; j++) { if(document.form.elements[j].name == element[i]) { document.form.elements[j].value = unescape(cookie3[i]); break; } } } } } function setcookie() { // クッキー保存 today = new Date(); // 今日の日時 expires = new Date(); // クッキーの有効期限 expires.setTime(today.getTime() + (life * 1000 * 60 * 60 * 24)); mon = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); week = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); cookie = cookiename + "="; // クッキーデータ作成 for(i = 0 ; i < element.length ; i++) { for(j = 0 ; j < document.form.length ; j++) { if(document.form.elements[j].name == element[i]) { cookie += escape(document.form.elements[j].value) + "&"; break; } } } cookie += ";"; cookie += "expires="; cookie += week[expires.getDay()] +","; cookie += expires.getDate() +"-"; cookie += mon[expires.getMonth()] +"-"; cookie += expires.getFullYear() +" "; cookie += expires.getHours() +":"; cookie += expires.getMinutes() +":"; cookie += expires.getSeconds() +";"; document.cookie = cookie; // クッキー書き込み } //--> </script> </head> <body onLoad="getcookie()"> <form name="form" action="../../sample/sample.cgi" method="POST" onSubmit="setcookie()"> 名前:<br><input type="text" name="name" size="100" value=""><br><br> メール:<br><input type="text" name="mail" size="100" value=""><br><br> 本文:<br><textarea name="text" cols="70" rows="10"></textarea><br><br> <input type="submit" value=" 送 信 "> <input type="reset" value=" リセット "><br> <small>※名前・メールは一度送信すると次回から自動的に入力されます。</small> </form> </body> </html>
〔 実行する 〕