javescriptはかなりの初心者です。
サイトや本のサンプルで勉強してテキストボックス、チェックボタン、
ラジオボタンに記入した内容を保存するcookieの作成を試みたのですが
上手くいきません;;
どなたかご教授よろしくお願いします。
やりたい事はフォームに記入・チェックした内容をセレクトボタン
「保存1」「保存2」・・・と選択したら、それぞれにセーブ・ロードを複数記憶させたいと思っています。
5つほどの記憶を予定しています。
実際に保存させるフォーム数は数十個以上あり、テキストボックスの記入内容は数字だけの予定です。
また、それらは別途の計算するスクリプトでの入力内容として使っています。(競合とかの問題もあるのでしょうか?)
なお、下記の状態でもラジオボタンだけは保存も出来ませんでした;
作成したものを載せましたが、なにぶん初心者の作成したscriptな
だけに役に立たない構文で、説明不足もあるかもしれませんがよろしくお願いします。
<HTML>
<HEAD>
<script language="JavaScript">
<!--
function set_cookie(){
var a = document.getElementById('myform').a.value;
var b = document.getElementById('myform').b.selectedIndex;
var c = document.getElementById('myform').c.selectedIndex;
var d = document.getElementById('myform').d.checked;
var e = document.getElementById('myform').e[0].checked;
var f = document.getElementById('myform').e[1].checked;
EXP=new Date();
EXP.setTime(EXP.getTime()+(30*1000*60*60*24));
document.cookie= a+"["+b+"["+c+"["+d+"["+e+"["+f+"["+";expires="+EXP.toGMTString();
}
function get_cookie(){
var GET=document.cookie;
GET=GET.split("[");
document.getElementById('myform').a.value = GET[0];
document.getElementById('myform').b.selectedIndex = GET[1];
document.getElementById('myform').c.selectedIndex = GET[2];
document.getElementById('myform').d.checked = GET[3];
document.getElementById('myform').e[0].checked = GET[4];
document.getElementById('myform').e[1].checked = GET[5];
}
-->
</script>
</HEAD>
<BODY>
<form id="myForm">テキスト1<BR>
<INPUT size="20" type="text" maxlength="10" value="0" name="a"><BR>
<BR>
セレクト1<BR>
<SELECT size="2" name="b">
<OPTION value="0" selected>0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
</SELECT><BR>
<BR>
セレクト2<BR>
<SELECT name="c">
<OPTION value="0" selected>0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
</SELECT><BR>
<BR>
チェック1<BR>
<INPUT type="checkbox" name="d" value="0"><BR>
<BR>
ラジオ1<BR>
<INPUT type="radio" name="e" value="0"><BR>
<INPUT type="radio" name="e" value="1"><BR>
<BR>
<BR>
<SELECT name="selectsave">
<OPTION selected>保存1</OPTION>
<OPTION>保存2</OPTION>
<OPTION>保存3</OPTION>
<OPTION>保存4</OPTION>
<OPTION>保存5</OPTION>
</SELECT><BR>
<BR>
<INPUT type="button" value="セーブ" name="save" onclick="set_cookie()">
<P><INPUT type="button" value="ロード" name="lord" onclick="get_cookie()"><BR>
</P>
</form>
</BODY>
</HTML>
No.1ベストアンサー
- 回答日時:
nameよりidがいいね。
ちょっと不都合がありそうだけど取り急ぎ!<HTML>
<BODY>
<form id="myForm">テキスト1<BR>
<INPUT size="20" type="text" maxlength="10" value="0" name="a"><BR>
<BR>
セレクト1<BR>
<SELECT size="2" name="b">
<OPTION value="0" selected>0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
</SELECT><BR>
<BR>
セレクト2<BR>
<SELECT name="c">
<OPTION value="0" selected>0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
</SELECT><BR>
<BR>
チェック1<BR>
<INPUT type="checkbox" name="d" value="0"><BR>
<BR>
ラジオ1<BR>
<INPUT type="radio" name="e" value="0"><BR>
<INPUT type="radio" name="e" value="1"><BR>
<BR>
<BR>
<SELECT name="selectsave">
<OPTION value="v1" selected>保存1</OPTION>
<OPTION value="v2" >保存2</OPTION>
<OPTION value="v3" >保存3</OPTION>
<OPTION value="v4" >保存4</OPTION>
<OPTION value="v5" >保存5</OPTION>
</SELECT><BR>
<BR>
<INPUT type="button" value="セーブ" name="save" onclick="set_cookie()"><br>
<INPUT type="button" value="ロード" name="lord" onclick="get_cookie()">
</form>
<input type="text" size="50" id="sample">
<script language="JavaScript">
function set_cookie(){
o=document.getElementById('myform');
var v =[];
v[0] = o.a.value;
v[1] = o.b.value;
v[2] = o.c.value;
v[3] = o.d.checked;
v[4] = o.e[0].checked;
v[5] = o.e[1].checked;
saveCookie( o.selectsave.value, v.join('/'),30);
document.getElementById('sample').value=v.join('/');
}
function get_cookie(){
var o=document.getElementById('myform');
var GET=loadCookie(o.selectsave.value).split('/');
document.getElementById('sample').value=loadCookie(o.selectsave.value);//sapmle
document.getElementById('myform').a.value = GET[0];
setvalue(document.getElementById('myform').b, GET[1]);
setvalue(document.getElementById('myform').c, GET[2]);
document.getElementById('myform').d.checked = (GET[3]=='true')? true:false;
document.getElementById('myform').e[0].checked = (GET[4]=='true')? true:false;
document.getElementById('myform').e[1].checked = (GET[5]=='true')? true:false;
}
function setvalue(o,v){
for(i=0;i<o.length;i++) if(o[i].value==v) o[i].selected=true;
}
function saveCookie( vn, v, dy ){
if(navigator.cookieEnabled)
document.cookie = vn+ '='+ v+ ';expires='+ new Date((new Date()).getTime()+dy*24*3600000).toGMTString();
}
function loadCookie(vn){
var rt='';
if( vn && document.cookie ) {
var v = document.cookie.split(';');
for(i in v){ v[i].match(/^\s*(.*)=(.*)$/); if( RegExp.$1 == vn) { rt = RegExp.$2; break; } }
} return rt;
}
</script>
</BODY>
</HTML>
さっそくの回答ありがとうございました。
これです、これがしたかったんです。
書いていただいたスクリプトは初心者には難しくて
本を片手になんとなくしか理解できませんが、
やっぱり複雑なスクリプトじゃないとダメ
だったんですね。
勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
value内に変数を入れたい
-
VB.NET DateTimeの型について
-
hiddenのvalueの値を変えたい
-
JAVASCRIPTの日数計算について
-
ラジオボタン、チェックボック...
-
プルダウン選択時、既に入力済...
-
HTML内に埋め込める簡単な計算...
-
ラジオボタンの選択で解答・点...
-
プルダウンメニューに連動するd...
-
javascriptでhiddenに二次元配...
-
複数のsubmitボタンで押された...
-
scriptによる読み込みのselect表示
-
RUBY の 分数の 精度
-
return trueとreturn falseの用...
-
FormのonsubmitでJavaスクリプ...
-
VBSでブラウザ上のテキストボッ...
-
文末の改行コードを削除したい
-
特定<table>内の<td>の色を変える
-
送信フォームで送信ボタンをお...
-
Selectボックスの幅を自動で広...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
javascriptでhiddenに二次元配...
-
hiddenのvalueの値を変えたい
-
setIntervalの間隔を途中で変更...
-
複数のsubmitボタンで押された...
-
javascriptにてHTMLのhiddenエ...
-
VB.NET DateTimeの型について
-
フォームで入力した値を別のフ...
-
セレクトボックスの初期選択状...
-
ラジオボタンの選択で解答・点...
-
テキストボックスに入力された...
-
クイズ作成:15個の問題から5個...
-
ホームページビルダーのスクリ...
-
入力を制限したい
-
CDOMailで本文テキストの文字コ...
-
VBAをJavaScriptに変換したいです
-
UART通信の取説で,left floati...
-
ラジオボタン、チェックボック...
-
Pythonで会員サイトの自動ログ...
-
JavaScriptでセレクトボックス...
おすすめ情報