
モーダル内に表示させるセレクトボックスで、毎回モーダル起動時ごとに、
セレクトボックス内の初期選択状態を変えたいと思っています。
1回目のモーダル起動時には本日の日付をSELECTEDにし、2回目以降は
前回のモーダル起動時に選択した値をSELECTEDにしたいと思っております。
いろいろな方法があると思うのですが(てっとりばやく、フラグを持たせる
とか、クッキーを使うとか・・・)、正しく実行されず、困っています。
どなたか、よいアドバイスをください。お願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
『補足』『お礼』への発言がありませんので、一方通行ですので、大変心配しております。
(^^)どうやら、解決したのですね。SELECTEDをクッキーで制御したい点に付いては、回答していませんでしたので、追加しておきます。ここでは例として回答します。(^^);
SELECTでブラウザーの表示サイズを変更し、変更されたサイズをクッキー登録し、再度表示された場合にクッキー値があれば、SELECTEDを埋め込みます。(クッキー登録が無い場合、つまり最初の訪問とクッキー期限切れの時)は全画面表示します。クッキーの登録と呼び出しのfunctionは以下で答えています。
--------------------
<script language="JavaScript"><!--
function resize_x(that){
size_x = that.options[that.selectedIndex].value;
redisp(size_x);
SaveCookie('wd',size_x);
}
function redisp(size_x){
if( size_x < screen.availWidth && size_x > 0){
position_x = ( screen.availWidth - size_x ) / 2 ;
self.resizeTo( size_x,screen.availHeight);
self.moveTo(position_x,0);
}else{
self.moveTo(0,0);
self.resizeTo(screen.availWidth,screen.availHeight);
}
}
wd = (LoadCookie('wd')!=null)? LoadCookie('wd'):'0' ;
redisp(wd);
// -->You need Java Script Runtime Processor !
</script>
--------------------
以上をHEAD内にでも登録します。
後はBODY中に
--------------------
<table><form><tr><td>
<select name=fix_size onChange="resize_x(this)">
<script language="JavaScript"><!--
document.write('<option value=640');
if(wd==640) document.write(' selected');
document.write('>640\n');
document.write('<option value=800');
if(wd==800) document.write(' selected');
document.write('>800\n');
document.write('<option value=1024');
if(wd==1024) document.write(' selected');
document.write('>1024\n');
document.write('<option value=0');
if(wd==0) document.write(' selected');
document.write('>full\n');
// -->
</script>
</select>
</td></tr></form></table>
--------------------
でご希望のSELECTEDは自動的に復元されます。ご健闘を祈ります。
No.2
- 回答日時:
まず、動的に強制的にクッキーへの書き出しを行いましょう。
クッキーへの登録と、読み出し用の JavaScript 関数を以下のようにします。(^^)当方で利用中の書式です。(^^)
<script language=javascript>
<!--
function getFront(mainStr,searchStr)
{foundOffset=mainStr.indexOf(searchStr);
if (foundOffset==-1){ return null };
return mainStr.substring(0,foundOffset);
};
function getEnd(mainStr,searchStr)
{foundOffset=mainStr.indexOf(searchStr);
if(foundOffset==-1){ return null };
return mainStr.substring(foundOffset+searchStr.length,mainStr.length);
}
function LoadCookie(name)
{var str=getEnd(document.cookie,name+"=");
if(str!=null){var tmp=getFront(str,";");
if(tmp!=null){ str=unescape(tmp) }
else{ str=unescape(str) };};
return str;
}
function SaveCookie(name,value)
{var expires = new Date();
//このクッキーの賞味期限は1週間です。
expires.setTime(expires.getTime() + (7*24*60*60*1000));
document.cookie=name+"="+escape(value)+"; expires="+expires.toGMTString();};
// --> Error ! (^^);
</script>
以上が汎用のクッキーへの書き出しと、読み込みの関数です。ASCIIデーターであればエスケープ文字列へのエンコード・デコード処理は無用ですね。日本語を扱いたい場合は必要ですね。
SaveCookie(name,value)
を任意に実行すればリアルタイムにクッキーへの書き込みを行います。この例では1週間保持されます。適当に有効時間を調整しましょう。
LoadCookie(name)
で、text name に登録されたクッキーを受け取ります。
abc = (LoadCookie('Count')!=null)? LoadCookie('Count'):'1' ;
などで呼び出します。クッキー名「 Count 」が登録されていなければ、文字データー「 1 」を変数「 abc 」に返します。
クッキー登録が理解できたら、SELECT 廻りをJavaScriptで飾り立てます。自力で出来ますか? (^^);
No.1
- 回答日時:
ようするに、モーダルウィンドウの初期起動状態の保持方法ですか?
簡単に作ってみたのですが、参考になるかどうかわかりませんが試してみてください。
以下のソースをファイルに貼り付けて実行してください。
注意:このサンプルは、モーダルを起動する画面が閉じられると、状態は初期の状態に戻ります。状態をずっと保持しておきたいなら、クッキーを使ったほうがいいと思います。
☆サンプル
file:a.htm
******************************************************************
<form name="test">
<input type="hidden" name="idx" value="1">
<input type="button" name="open" value="開く" onclick="window.open('b.htm', 'modal')">
</form>
******************************************************************
file:b.htm
******************************************************************
<script language="javascript">
<!--
function openInfo()
{
var no;
no = opener.document.test.idx.value;
document.test2.hiduke[no].checked = true;
}
function setInfo(iIdx)
{
opener.document.test.idx.value = iIdx;
}
//-->
</script>
<form name="test2">
<input type="radio" name="hiduke" onclick="setInfo('0')">前日<br>
<input type="radio" name="hiduke" onclick="setInfo('1')">当日<br>
<input type="radio" name="hiduke" onclick="setInfo('2')">明日<br>
</form>
<script language="javascript">
<!--
openInfo();
//-->
</script>
******************************************************************
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- BTOパソコン OSの入ったHDDがBIOSには認識されるが起動しない 5 2022/04/15 00:47
- 日本株 SBI証券HYPER SBI 2のエラー 1 2023/01/31 13:38
- ドライブ・ストレージ デスクトップパソコンOSについて デスクトップパソコンスペック、Inteli54460 HD4600 3 2023/04/17 01:57
- Windows Me・NT・2000 widows xpのエラーで利用ができなくなりました 3 2022/12/21 13:43
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
- 据え置き型ゲーム機 どうなの? 1 2023/03/09 20:10
- Windows 10 Windows11タスクバーやエクスプローラー、スタートメニュー 動画全画面時にカーソルが見えない 1 2022/04/08 00:03
- Windows 10 windows11が突然起動しなくなりました 3 2022/06/30 17:49
- デスクトップパソコン デバイスからのHDMI信号がありません 5 2022/05/07 18:08
- Amazon Amazon の ( お急ぎ便 無料 ) は、毎月会費を支払う プライム とかいうような会費制システ 7 2023/05/23 09:51
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Javascript】formで取得した...
-
複数のsubmitボタンで押された...
-
大量のselect要素のvalueを短い...
-
hiddenのvalueの値を変えたい
-
javascriptでhiddenに二次元配...
-
CDOMailで本文テキストの文字コ...
-
クイズ作成:15個の問題から5個...
-
電卓のJavaScript
-
name属性が同じフォームが複数...
-
3桁区切りのカンマをつけたい...
-
ASP.NET MVC 3
-
Kintone(キントーン)でドロップ...
-
フォーム画面での処理についてです
-
他フォームの入力データの引継ぎ
-
value内に変数を入れたい
-
setIntervalの間隔を途中で変更...
-
eval()を使わずに数値を取得し...
-
自動的に連番生成したURLにリン...
-
VB.NET DateTimeの型について
-
ラジオボタンにタブインデック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
複数のsubmitボタンで押された...
-
setIntervalの間隔を途中で変更...
-
VB.NET DateTimeの型について
-
JavaScriptによる自動計算フォ...
-
javascriptでhiddenに二次元配...
-
name属性が同じフォームが複数...
-
フォームで入力した値を別のフ...
-
JAVASCRIPTで、ボタンを押した...
-
プルダウン選択時、既に入力済...
-
どのボタンがクリックされたの...
-
チェックボックスがundefinedと...
-
eval()を使わずに数値を取得し...
-
ラジオボタンと連動して文字列...
-
ループで連続したフォームの値...
-
クイズ作成:15個の問題から5個...
-
ラジオボタンを押して計算結果...
-
コピーすると改行コードがCRと...
-
自動的に連番生成したURLにリン...
おすすめ情報