// // stdform.js -- Copyright (C) bko 2001,09 // // [注] このファイルは、シフトJISで書かれています。 // シフトJIS以外のcharsetで書かれたHTMLファイルから呼び出すときは、 // 文字コードを変換して下さい。 // HTMLの文字コードと一致しないと、古いバージョンのブラウザでは // スクリプトの解釈が正しく実行されない場合があります。 theForm = null; bAlready = false; function StartFormCheck(name) { if (bAlready) return false; theForm = name; return true; } function EndFormCheck() { bAlready = true; return true; } function GetFormElement(name) { if (theForm == null) return null; return eval("document.forms." + theForm + "." + name); } function GetValue(name) { var obj = GetFormElement(name); return obj.value; } function GetRadioValue(name) { var obj = GetFormElement(name); if (isNaN(obj.length)) { if (obj.checked) return obj.value; } else { var n = obj.length; for (var i = 0; i < n; ++i) { if (obj[i].checked) return obj[i].value; } } return null; } function SetRadio(name,n) { var obj = GetFormElement(name); if (isNaN(obj.length)) { if (n != 0) return null; obj.checked = true; return obj.value; } if (n >= obj.length) return null; obj[n].checked = true; return obj[n].value; } function SetRadioByValue(name,value) { var obj = GetFormElement(name); if (isNaN(obj.length)) { if (obj.value != value) return null; obj.echked = true; return 0; } var n = obj.length; for (var i = 0; i < n; ++i) { if (obj[i].value == value) { obj[i].checked = true; return i; } } return null; } function GetSelected(name) { var obj = GetFormElement(name); return obj.selectedIndex; } function GetSelectedValue(name) { var obj = GetFormElement(name); var n = obj.selectedIndex; if (n == -1) return ""; return obj.options[n].value; } function IsSetValue(name,msg) { var obj = GetFormElement(name); if (obj.value == "") { alert(msg + "を入力して下さい"); obj.focus(); return false; } return true; } function IsSetValue2(name1,name2,msg) { var obj1 = GetFormElement(name1); var obj2 = GetFormElement(name2); if ((obj1.value == "") && (obj2.value == "")) { alert(msg + "を入力して下さい"); obj1.focus(); return false; } return true; } function IsMatchValue(name1,name2,msg1,msg2) { var obj1 = GetFormElement(name1); var obj2 = GetFormElement(name2); if (obj1.value != obj2.value) { alert(msg1 + "と" + msg2 + "が一致していません"); obj1.focus(); return false; } return true; } function IsNotInclude(str,name,msg) { var obj = GetFormElement(name); var v = obj.value; if (! _IsNotInclude(str,v)) { alert(msg + "に不正な文字が含まれています"); obj.focus(); return false; } return true; } function _IsNotInclude(str,v) { var c = str.split(""); var m = str.length; for (var i = 0; i < m; ++i) { if (v.indexOf(c[i]) != -1) return false; } return true; } function IsComposed(str,name,msg) { var obj = GetFormElement(name); var v = obj.value; if (! _IsComposed(str,v)) { alert(msg + "に不正な文字が含まれています"); obj.focus(); return false; } return true; } function _IsComposed(str,v) { var c = v.split(""); var m = v.length; for (var i = 0; i < m; ++i) { if (str.indexOf(c[i]) == -1) return false; } return true; } function IsSelected(name,defval,msg) { var val = GetSelectedValue(name); if (val == defval) { var obj = GetFormElement(name); alert(msg + "を選択して下さい"); obj.focus(); return false; } return true; } function IsChecked(name) { var obj = GetFormElement(name); return obj.checked; } function IsRadioChecked(name,n) { var obj = GetFormElement(name); return obj[n].checked; } function IsMailaddress(name) { var obj = GetFormElement(name); var v = obj.value; v = v.toLowerCase(); var s1 = "0123456789abcdefghijklmnopqrstuvwxyz-_."; var x = v.indexOf("@"); while (x != -1) { var usr = v.substring(0,x); var host = v.substring(x+1,v.length); if (! _IsComposed(s1,usr)) break; if (! _IsComposed(s1,host)) break; return true; } alert("メールアドレスに不正な文字が含まれています"); obj.focus(); return false; } function IsNumber(name,msg) { var v = GetValue(name); if (! _IsComposed("0123456789",v)) { alert(msg + "には数字を入力して下さい"); return false; } return true; } function IsZip(name) { var obj = GetFormElement(name); var v = obj.value; var c = v.split(""); var str = "0123456789"; var m = v.length; var i; if ((m == 7) || (m == 8)) { for (i = 0; i < 3; ++i) { if (str.indexOf(c[i]) == -1) return _nozip(obj); } if ((m == 8) && (c[i] == "-")) ++i; for ( ; i < m; ++i) { if (str.indexOf(c[i]) == -1) return _nozip(obj); } } else return _nozip(obj); return true; } function _nozip(obj) { alert("郵便番号は数字7桁で入力して下さい"); obj.focus(); return false; }