JavaScriptアーカイブ: とあるプログラマーの平凡な日記

2007年10月 4日

【JavaScript】チェックボックスの選択チェック

よく使うけど、忘れちゃうシリーズ(^^;
 
 
 
チェックボックス[name:chkbox]がn個あり、
1つでもチェックがある場合は、chk_flg=1とする。
 
 
 
 

	chk_flg = 0;
if(frm.chkbox.length > 0){
for(i=0; i if(frm.chkbox[i].checked == true){
chk_flg = 1;
break;
}
}
}else{
if(frm.chkbox.checked == true){
chk_flg = 1;
}
}

2007年9月12日

日付入力チェック(JavaScirpt)

入力された文字が、日付型(YYYY/MM/DD)であるかチェックをし、
日付型なら true を それ以外なら false を返す。
 
 
 
 
/*===============================================================
chk_input_date(val) - yyyy/mm/dd形式かチェック(JavaScript)
val : チェック対象文字列
return true : OK
false: NG
===============================================================*/
function chk_input_date(val){
yy = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 29);

wYear = val.substr(0, 4);
wMonth = wMChk = val.substr(5, 2);
wDay = val.substr(8, 2);

// 年の範囲検証
if (!(wYear >= 1900 && wYear <= 2100)) {
return false;
}

// 月の範囲検証
if (!(wMonth >= 1 && wMonth <= 12)) {
return false;
}

// 閏年の判定
if (!(wYear % 4) && wMonth == 2) {
wMChk = 12; // 閏年テーブル

if (!(wYear % 100)) {
if (wYear % 400) {
wMChk = 1; // non閏年テーブル
}
}
} else {
wMChk--;
}

// 日の範囲検証
if (!(1 <= wDay && yy[wMChk] >= wDay)) {
return false;
}

return true;

}
 
 
 
 

2007年5月11日

Cookieを保存して利用する(VBScript/JavaScript)

お仕事の都合上、Cookieを利用することになったのでメモ。


内容

VBScriptとJavaScriptの両方からCookieを書き込み、VBScriptで読み込む。

 
 
まずは両方にCookieを書き込むコードを追加。
Cookie名称は"testcookie"、保存する値は変数[strval]に入っているもの。保存期間は30日。

VBScript

Response.Cookies("testcookie") = strval
Response.Cookies("testcookie").Expires = DateAdd("d",30, Date)


JavaScript

var expire = new Date();
expire.setTime(expire.getTime() + (30*24*60*60*1000));
document.cookie= "testcookie=" + escape(strval) + "; expires=" + expire.toGMTString();

 
 
これにて実行するとCookieのファイルが2つできるのだ。
内容はVBScirpt側で書き込んだものとJavaScript側で書き込んだもの。
そうなるとCookieを読み込み時に2つファイルができてダメ。
うーむ、困った。
実際のファイル内容を確認したところどうもURLが違うのだ。
そういやドメインの指定ができるんだっけ。とドメインの指定をしてもNG。
うーん、困った困った。
 
 
ってことで色々探したところ重要な実験を発見。

Cookieが届く範囲を再確認
 
 
なるほど。
ドメイン指定+Pathの設定が重要っぽいのね。
 
ってなわけで書き直し。

VBScript

Response.Cookies("testcookie") = strval
Response.Cookies("testcookie").Domain = "ここにドメインを指定する。うちの場合snow-drop.orgとかね"
Response.Cookies("testcookie").Path = "/"
Response.Cookies("testcookie").Expires = DateAdd("d",30, Date)


JavaScript

var expire = new Date();
expire.setTime(expire.getTime() + (30*24*60*60*1000));
document.cookie= "testcookie=" + escape(strval) + "; expires=" + expire.toGMTString() + "; domain=" + "ここにドメインを指定する。うちの場合snow-drop.orgとかね" + "; path=/;";


これで完了!
VBScript側からもJavaScript側からも同じファイルに書き込みに行ってくれるようになった!
ううーん、かなりお勉強になりました。