/*****************************************************************/ /* 概要 :フォーム配下の入力項目の一括チェック */ /* 関数名:checkItems */ /* 引数 : target_form … チェック対象のフォーム */ /* check_item_list … 入力項目チェック用配列(詳細後述) */ /* 戻り値:true / false (チェックOK / NG) */ /*****************************************************************/ function checkItems(target_form,check_item_list) { /* */ /* 入力項目チェック用配列について */ /* var check_item_list=new Array( */ /* [項目名(name属性),項目名(alert表示用),必須(※1),文字数(min),文字数(max),文字種(※2),改行(※3)] */ /* ,… */ /* ); */ /* */ /* ※1 必須 … 0:非必須 1:必須 */ /* ※2 文字種 … 0:不問 1:半角数字 2:半角英数 3:半角英数記号 4:全角 */ /* ※3 改行 … 0:不可 1:可 */ /* */ var len=check_item_list.length; for(var i=0; i1) { input=null; break; } input.type=o.type; if(o.value!="") { /* 何か入力されている場合は戻り値にセットする */ input.values[i++]=o.value; } } else /* セレクトボックス(単一選択)の場合 */ if(o.type=="select-one") { if(len>1) { input=null; break; } input.type=o.type; var idx=o.selectedIndex; if(idx>=0) { var op=o.options[idx]; if(op.text!="--選択してください--") { /* 「--選択してください--」以外が選択されている場合は戻り値にセットする */ input.values[i++]=op.value; } } } else /* セレクトボックス(複数選択)の場合 */ if(o.type=="select-multiple") { if(len>1) { input=null; break; } input.type=o.type; var oplen=o.length; for(var k=0; kobj_max_len) { /* 長さが範囲外 */ /* テキストボックス or テキストエリア or パスワード入力ボックス の場合 */ if(input.type=="text" || input.type=="textarea" || input.type=="password") { /* アラート表示 */ if(obj_min_len==obj_max_len) { alert(obj_nm+" は"+obj_min_len+"文字で入力してください。"); } else { alert(obj_nm+" は"+obj_min_len+"~"+obj_max_len+"文字で入力してください。"); } /* エレメントにフォーカスを当てる */ obj.focus(); } else /* セレクトボックスの場合 */ if(input.type=="select-one" || input.type=="select-multiple") { /* アラート表示 */ alert(obj_nm+" を正しく選択してください。"); /* エレメントにフォーカスを当てる */ obj.focus(); } else /* チェックボックス or ラジオボタン の場合 */ if(input.type=="checkbox" || input.type=="radio") { /* アラート表示 */ alert(obj_nm+" を正しくチェックしてください。"); } else /* それ以外 */ { /* アラート表示 */ if(obj_min_len==obj_max_len) { alert(obj_nm+" は"+obj_min_len+"文字で入力してください。"); } else { alert(obj_nm+" は"+obj_min_len+"~"+obj_max_len+"文字で入力してください。"); } } return false; } } /* 長さが問題ない場合はtrueを返す */ return true; } /***************************************************************************************************************/ /* 概要 :入力項目の文字種チェック */ /* 関数名:checkItemCharType */ /* 引数 : obj … チェック対象の入力項目 */ /* obj_nm … 入力項目の名前(アラート表示用) */ /* obj_chr_typ … 入力項目の文字種(0:全角/半角英数記号 1:半角数字 2:半角英数 3:半角英数記号 4:全角) */ /* obj_linefeed … 入力項目の改行可否(0:不可 1:可) */ /* input */ /* { */ /* type … 入力項目のtype */ /* ( text | textarea | password | select-one | select-multiple | checkbox | radio ) */ /* values … 入力項目に入力されている値の配列 */ /* (何も入力されていない場合は空の配列) */ /* } */ /* 戻り値:true / false (チェックOK / NG) */ /***************************************************************************************************************/ function checkItemCharType(obj,obj_nm,obj_chr_typ,obj_linefeed,input) { var len=input.values.length; for(var i=0; i=0x20 && c<=0x7e) { return true; } return false; } /*******************************************************/ /* 概要 :Unicodeコードの文字種チェック(半角数字) */ /* 関数名:isAsciiNum */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*******************************************************/ function isAsciiNum(c) { if(c>=0x30 && c<=0x39) { return true; } return false; } /*******************************************************/ /* 概要 :Unicodeコードの文字種チェック(半角英字) */ /* 関数名:isAsciiAlpha */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*******************************************************/ function isAsciiAlpha(c) { if((c>=0x41 && c<=0x5a) || (c>=0x61 && c<=0x7a)) { return true; } return false; } /*******************************************************/ /* 概要 :Unicodeコードの文字種チェック(半角英数) */ /* 関数名:isAsciiNumAlpha */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*******************************************************/ function isAsciiNumAlpha(c) { if(isAsciiNum(c) || isAsciiAlpha(c)) { return true; } return false; } /*******************************************************/ /* 概要 :Unicodeコードの文字種チェック(半角記号) */ /* 関数名:isAsciiSign */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*******************************************************/ function isAsciiSign(c) { /* if((c>=0x20 && c<=0x2f) || (c>=0x3a && c<=0x40) || (c>=0x5b && c<=0x60) || (c>=0x7b && c<=0x7e)) */ if(isAscii(c) && !isAsciiNumAlpha(c)) { return true; } return false; } /*******************************************************/ /* 概要 :Unicodeコードの文字種チェック(制御コード) */ /* 関数名:isCtrlCode */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*******************************************************/ function isCtrlCode(c) { if((c>=0x00 && c<=0x1f) || (c==0x7f)) { return true; } return false; } /*******************************************************/ /* 概要 :Unicodeコードの文字種チェック(半角カナ) */ /* 関数名:isHankakuKana */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*******************************************************/ function isHankakuKana(c) { if(c>=0xff61 && c<=0xff9f) { return true; } return false; } /*************************************************************/ /* 概要 :Unicodeコードの文字種チェック(私用領域の半角文字) */ /* 関数名:isHankakuPrivateUse */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*************************************************************/ function isHankakuPrivateUse(c) { if(c==0xf8f0 || (c>=0xf8f1 && c<=0xf8f3)) { return true; } return false; } /*******************************************************/ /* 概要 :Unicodeコードの文字種チェック(全角) */ /* 関数名:isZenkaku */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /*******************************************************/ function isZenkaku(c) { if(!isAscii(c) && !isCtrlCode(c) && !isHankakuKana(c) && !isHankakuPrivateUse(c)) { return true; } return false; } /********************************************************/ /* 概要 :Unicodeコードの文字種チェック(全角Ascii) */ /* 関数名:isZenkakuAscii */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /********************************************************/ function isZenkakuAscii(c) { if(c==0x3000 || (c>=0xff01 && c<=0xff5e)) { return true; } return false; } /********************************************************/ /* 概要 :Unicodeコードの文字種チェック(全角Ascii数字) */ /* 関数名:isZenkakuAsciiNum */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /********************************************************/ function isZenkakuAsciiNum(c) { if(c>=0xff10 && c<=0xff19) { return true; } return false; } /********************************************************/ /* 概要 :Unicodeコードの文字種チェック(全角Ascii英字) */ /* 関数名:isZenkakuAsciiAlpha */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /********************************************************/ function isZenkakuAsciiAlpha(c) { if((c>=0xff21 && c<=0xff3a) || (c>=0xff41 && c<=0xff5a)) { return true; } return false; } /********************************************************/ /* 概要 :Unicodeコードの文字種チェック(全角Ascii英数) */ /* 関数名:isZenkakuAsciiNumAlpha */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /********************************************************/ function isZenkakuAsciiNumAlpha(c) { if(isZenkakuAsciiNum(c) || isZenkakuAsciiAlpha(c)) { return true; } return false; } /********************************************************/ /* 概要 :Unicodeコードの文字種チェック(全角Ascii記号) */ /* 関数名:isZenkakuAsciiSign */ /* 引数 : c … チェック対象のUnicodeコード */ /* 戻り値:true / false (チェックOK / NG) */ /********************************************************/ function isZenkakuAsciiSign(c) { if(isZenkakuAscii(c) && !isZenkakuAsciiNumAlpha(c)) { return true; } return false; }