フォーム入力時の複数個所の未入力箇所を一括表示させる方法

このQ&Aのポイント
  • フォーム入力時に、複数個所の未入力箇所がある場合に、一括で未入力箇所を表示させる方法を知りたいです。
  • 具体的には、必須入力項目が未入力の場合に、その箇所のインデックスナンバーと警告文を表示させたいです。
  • 初心者なので、解説も加えていただけると助かります。
回答を見る
  • ベストアンサー

複数個所のアラートを一括表示させるには?

フォーム入力の際に、必須入力項目を設け、未入力箇所のインデックスナンバーと警告文を表示させる際に、複数個所に未入力箇所がある場合、インデックスナンバーも複数表示させるものを作りたいと考えています。 例)フォーム入力時 index NO./title(必須入力)/price 1 /ABCD /1500 2 /QQQ / 3 /SSS /800 4 / XXX / " 20 /AAA / この場合、必須入力に入力されているインデックスNo2、4、20のpriceが未入力となっていると考え、アラートを出したいのですが、 alert文で"「インデックスNO2、3、20のpriceが未入力です。」(「、」でNOを区切る)、と表示させたいのですがどうしたらよいのでしょうか?初心者なので、解説も加えていただけると、大変参考になります。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ 入力の数が多いときは、テーブルを利用するとよいかもしれません。 ・ テーブルのセルにアクセスするには、 rows[i].cells[j] の形を使います。 ・ 簡単な例ですが、以下のコードを参考にしてみてください。 ------------------------------------------------------------ <html> <head> <title>HTML DOM TableRow cells</title> <script type="text/javascript"> function check() { var tbl = document.getElementById("Table1"); var rows = tbl.rows; var ss = ""; for (var i=1; i<rows.length ; i++) { if (rows[i].cells[2].firstChild.value=="") ss += "," + (i); } if (ss.length>1) { ss = ss.substring(1); alert("インデックスNO" + ss + "のpriceが未入力です。"); return false; } return true; } </script> </head> <body> <form> <table id="Table1" border="1"> <tr> <th>index NO.</th> <th>title</th> <th>price</th> </tr> <tr> <td>1</td> <td>ABCD</td> <td><input type=text" /></td> </tr> <tr> <td>2</td> <td>QQQ </td> <td><input type=text" /></td> </tr> <tr> <td>3</td> <td>SSS</td> <td><input type=text" /></td> </tr> </table> </form> <br /> <input type="button" onclick="return check()" value="セルをチェック"/> </body> </html>

suica7
質問者

お礼

ありがとうございます。参考にさせていただきます。

関連するQ&A

  • アラートについて

    PHPでフォームを作っており送信または登録が完了したらアラートで メッセージを出力するいうものをつくりました。 例としてmysqlに登録完了したらアラートを出すという抜粋です。 if (PEAR:: isError($res)) { die($res->getMessage()); } else { echo "<script type='text/javascript'>"; echo "alert('登録完了');"; echo "</script>"; } これで動作は問題ないのですがアラートが表示されOKボタンを クリックしたらheaderlocationで指定のURLに飛ばすということは js側で制御できないものでしょうか? 使用目的としては、データの更新など同一ページで行った場合 アラートが表示されOKボタンをクリックしてもブラウザを更新 しなければデータが反映表示されないためです。 phpでアラートの後にheaderlocationをやるとページ移管は するもののアラートが表示されず困っております。 jsについてはほぼ無知なもので簡単なことなのかもしれないの ですが方法がわかりません。 フォームは複数ありアラートを表示させたい全ての箇所にechoで 出力しているのですが他にもいい方法などアドバイスなどが ありましたら教えて頂けますと非常に幸いです。

  • エクセルで一か所に入力して複数個所に同時表示

    ある一か所に文字入力(例えば人名など)をすることで、指定した複数の個所に表示する方法について教えてください。

  • 【alert();について】

    【alert();について】 お世話になります。 現在フォームの簡単な入力チェックを作っています。 チェック対象:タイトル・本文・添付ファイル名 動作:入力漏れがあれば、alert("…を入力してください");を吐く ▼やりたいこと 3項目のチェック結果を1アラートで表示したい。 ------------------------------- ・タイトルが入力されていません。(タイトルが入力漏れの場合) ・本文が入力されていません。  (本文が入力漏れの場合) ・添付ファイルがありません。  (添付ファイルが入力漏れの場合) ------------------------------- ※エラー数分、アラートが出るのは× ライブラリ(jquery)を利用して書いています。 配列でまわしてみたり、フラグを立ててみたりしてるのですが、 うまく動かず、どう書いていいかまとまりません…。 //タイトル値 var chkTitle = $("#title").val(); //ファイル名 var chkFname = $("#fname").val(); //テキスト var chkText = $("#test p:first-child"); //チェック項目配列 chkArray = new Array(chkTitle,chkFname,chkText); var eCount = 0; $.each(chkArray,function(i){ if(chkArray[i]=="") { eCount = eCount + 1 ; } }); alert(・・・・・); どなたかお力をお貸しくださいませ。

  • カーソルが当たった箇所に吹き出しで表示

    現在フォームを作成しています。 仕様として、テキストフィールドにカーソルがあたるごとに、その箇所に「吹き出し表示」で説明文を加えたいと考えています。できなければ、フォームにじか書きしてしまうしかないと思うのですが、もし同じようなコーディングをした経験がある方がいらっしゃいましたら、ご教示願えますでしょうか?よろしくお願いいたします。

  • javaScriptでアラート設定を教えてください。

    現在入力フォームを作成しておりますが、どうしても設定できない部分がありますので、教えてください。 下記のようなスクリプトを記述していますが、「ナンバー」のエラー表示部分に、半角数字3桁のみの入力設定を行いたいです。 それ以外を入力するとエラーが表示されるように設定を行いたいです。 宜しくお願い致します。 <script> function WriterCheck() { var str = document.dataInputForm.name.value; if( str.match( /[^A-Za-z\s.-]+/ ) ) { alert("名前は、半角英文字のみで入力して下さい。"); return false; } return true; } function CheckForm(dataInputForm) { var FormOK = false; if (dataInputForm.no.value == "") { FieldControl(dataInputForm.To, "ナンバーが未入力です。"); }else if (dataInputForm.title.value == "") { FieldControl(dataInputForm.To, "タイトル名が未入力です。"); }else if (dataInputForm.name.value == "") { FieldControl(dataInputForm.To, "名前が未入力です。"); }else { FormOK = true; } return FormOK; } function FieldControl(element, message) { alert(message); } </script>

  • 入力フォームで、全角カタカナ(正規表示)以外を入力し送信ボタンを押すとアラートを出すjavascriptが知りたいのですが

    htmlで、フォームの項目の中にフリガナを入力してもらう際、全角カタカナ(ア~ン、ァ~ヶ、ゞ等を含む正規表示で)以外の入力を行って送信ボタンを押すと、「フリガナを全角カタカナで正しくご入力下さい」というアラートをjavascriptで出したいのですが、どう判定させたらよいものか、さっぱりわからなくて書き込みさせて頂いています。どなたかご存じの方がいらっしゃったら教えて頂けないでしょうか? どうか、宜しくお願い致します。

  • word文章中の複数個所に同時に表示する方法

    wordで作成した書類の中で複数個所に同じ文字(例えば人の名前)を表示させたいと思います。 複数人の宛先に対して、同じひな形の書類を作成したいのですが、一回一回、書類の中の複数個所の名前を変更するのは時間もかかるし、誤記の原因となっています。 何とか改善したいのですが、上手なやり方はありますでしょうか? 平成○○年○月○日 ○○○○○○会社 ◆◆◆◆ 様 △△△△会社 △△ ○○○○○のご案内 ええええええええええええええええええええええええええええええええええええええええええええええええええええええええ◆◆◆◆えええええええええええええええええええええええええええええええええええええええええええええええええええええ 【場所】○○○○会館 【日時】平成○○年○月○日 ○○時から 【テーマ】○○○○○ 【参加者】◆◆◆◆ 【会費】1000円 以上 ◆で表示していある個所に同じ内容を入力できるようにしたいんです。 どうぞ、よろしくお願いします!

  • 選択したラベルを別の箇所に表示するには?

    お世話になります。 SELECTで選択したラベルを別の箇所に表示したいと考えており下記のように記述をしましたがどうも反応してくれません・・。 アドバイス頂けますと幸いです。 ■【HTML】 <SELECT name="search_price"> <option id="sp0" value="aaa" selected><label for="aaa">りんご</label></option> <option id="sp1" value="bbb" ><label for="bbb">みかん</label></option> <option id="sp2" value="ccc" ><label for="ccc">たぬき</label></option> </SELECT> <div id ="search_price">結果未表示</div> ■【Javascript】 $(window).load(function(){ var $b = $('select[name="search_price"]'); $b.bind('change', function(){ var add = ''; $b.each(function(index, value) {★ if ('select option:selected'){★ add += '<span>' + $('select option:selected').html() + '</span>');★ } }); if (add.length > 0) { add = add.substring(0, add.length - 2) + '.'; } else { add = '結果未表示'; } $('#search_price').html(add); }); }); 選択した項目のラベル(りんご等)が#search_priceの箇所に表示をさせてたいです。 行内の★の箇所がどうも怪しいようなのですが、アドバイスのほどよろしくお願い致します。

  • 【インデックス型検索エンジン】 1ページの中で複数箇所に飛ばすことは可能?

    インデックス型検索エンジンの導入を検討しています。 ページ単位ではなく、1ページの中複数箇所に、キーワドを設けることは可能でしょうか? (イメージ的には nameタグにリンクを飛ばすようなイメージです) 検索結果としても、ページタイトルではなく、その1ページの中に複数箇所ある該当部分にタイトルのようなものをつけて、 検索結果ではそのタイトルが表示されると尚良いです。 やりたいことは・・ 1ページ内に数十個ある<table>それぞれにキーワードをあて、 検索した際に、その各<table>の名前がでるようになる。のが1番やりたいことです。 ・そんなことできる訳がない ・それをやりたいなら●●が必要だ ・こうすればできる! ・●●とか応用できるかも? などなど、否定的なものでもかまいませんのでご教授お願いいたします!

  • テキストデータから指定した1行を抜き出して表示

    perl初心者です。 説明不足の箇所もあるかと思いますが、よろしくお願いします。 テキストデータから指定した1行を抜き出して表示するのにはどうしたらいいんでしょうか。 data.txtの中に=で区切られた文字が入っているとします。 1=にんじん=150 2=じゃがいも=200 3=たまねぎ=100 左から$s_no,$s_name,$s_priceという変数になっています。 これを print <<"EOF"; <TABLE class="list_index"> EOF open(IN,"../indata/sdeta.txt"); @data = <IN>; close(IN); foreach $sdata (@data){ chop($sdata); ($s_no,$s_name,$s_price) = split (/=/, $sdata); print <<"EOF"; <TR> <TD class="list2">$s_no</TD> <TD class="list3">$s_name</TD> <TD class="list4">$s_price円</TD> <TR> EOF } print <<"EOF"; </TABLE> EOF という感じでテーブルにデータを全て一覧表示させました。 ここから、$s_noで表示されている「1」「2」「3」をクリックすると、 別ページにとんで、クリックした番号の1行を編集用のフォームに表示させたいです。 フォームに表示させる方法はわかっているんですが、 クリックで指定した1行だけを表示する方法がわからずに困っています。 よろしくお願い致します。

    • ベストアンサー
    • Perl

専門家に質問してみよう