- ベストアンサー
可変データのチェック方法とループ処理について
- 可変なデータをチェックする方法とは?データをループして処理する方法とは?詳しく解説します。
- 可変データのチェック方法とループ処理について知りたい方必見!正しいデータの入力チェックと効率的なデータ処理の方法について解説します。
- 可変データの確認方法とデータのループ処理について詳しく教えてください。データの入力チェックと効率的なデータ処理のポイントについても解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでしょうか。 /** * 送信前チェック * @return 結果(true=正常/false=異常) */ function s_chk() { //同じNameを持つ要素の配列を取得する var 要素配列 = document.getElementsByName("sat[]"); //要素配列を個別に処理する for ( var i = 0 ; i < 要素配列.length ; i++ ) { //要素(テキストボックス)を取得 var 要素 = 要素配列[i]; //検査の結果、エラーが検出された場合 if ( ! 検査(要素.value) ) { alert("正しい月日を入力して下さい"); 要素.focus(); //フォーカスを設定 要素.select();//文字列を反転表示 return false; //エラーを返す } } //最後までチェックが正常の場合 return true; } /** * 日付チェック * @param 文字列 日付(yyyy/m/d形式) * 但し、空文字列は正常とする * @return 結果(true=正常/false=異常) */ function 検査(文字列) { //空文字列なら正常終了する if ( 文字列 == "" ) return true; //"/"(スラッシュ)で文字列を分割する var 年月日 = 文字列.split(/\//g); //分割した要素数が3個でなければエラーとする if ( 年月日.length != 3 ) return false; //各要素(文字列)を数値化する for ( var i = 0 ; i < 3 ; i++ ) { //文字列に非数字が含まれていた場合はエラーとする if ( 年月日[i].search(/\D/) >= 0 ) return false; //数値化する 年月日[i] = parseInt(年月日[i]); } //日付に変換する var 日付 = new Date(年月日[0],--年月日[1],年月日[2]); //変換前後の月が一致すれば正常、一致しなければ異常 return ( 日付.getMonth() == 年月日[1] ); } </SCRIPT> </HTML> ※インデントに漢字空白を使っているのでコピペ時は注意!
その他の回答 (1)
- nda23
- ベストアンサー率54% (777/1415)
>どしてもチェックが行えずに困っています どういうふうにダメなのか書きましょうよ。あなたの側について 見ているわけじゃないし、残念ながらテレパシー能力もありません。 (1)日付データが複数個ある。個数は可変 (2)日付は任意入力とし、入力形式はyyyy/m/d 障害状況:正しい日付を入力してもエラーになる。 これくらいはまとめてもらわないと、なにがどうなっているのか サッパリです。
補足
nda23様 説明不足ですいません。 やりたいこととしては、日付データが複数個あり、それが可変なので、 hoge = document.form1.elements["sat[]"][0].value; hoge1 = document.form1.elements["sat[]"][1].value; の様に指定してやることが出来ないんです。 これを、dbから取り出してきたデータがまず何件あり、それを変更をした際にはJavascriptで各日付が正しいかどうかチェックしたいのです。 わかりにくいかもしれませんが、ご教授お願い致します。
お礼
nda23様 ご教授ありがとうございます。 早速週明けに試みてみたいと思います★☆ 誠に恐縮なのですが、またわからない事があった時は ご教授頂ければ幸いです。