• ベストアンサー

スクリプトで表示したフォームの内容をコレクションするには?

こんにちは。 実は今使っているのはVBScriptなのですが、 こちらにノウハウを持った方が多そうなので投稿させていただきました。 スクリプト上で str = str &"<input type=checkbox name=CkBx id=CkBox0></td>" のようにして作成した数十個のチェックボックスに チェックを入れてフォームボタンを押したときに、 それぞれのチェックボックスの状態を知りたいのですが、 知ることは可能でしょうか? チェックボックスを作成する際に nameをCkBx0,CkBx1,, のようにすれば直接中身を参照できるのですが、 数十個あるチェックボックスに対して行うのは 大変なので、よい方法があれば教えて下さい。 よろしくおねがいします。

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

  • ベストアンサー
  • m035
  • ベストアンサー率44% (38/86)
回答No.1

私が思いつくのは var max=10;//checkboxの数 var log=new Array(max); for(i=0;i<max;i++){ log[i]=<変更部分>; } <変更部分>を 方法1 document.<form名>.getElementById('CkBox'+i).value <form名>. は要らないかもしれません。 方法2 document.<form名>.elements[i].value <form名>にはform名か forms[0](←0の部分には何番目の<form>~</form>か入れる) を入れる。 以上の二つが考えられます。 誰か間違ってたら訂正よろしくお願いします。

worldwind
質問者

お礼

document.getElementById("CkBx").checked で取ってくることができました! <div>~</div>の中にスクリプトで出したフォームに対しても難なく適用できるんですね。 おかげさまで、たくさんのフォームの処理ができるようになりました。 大変参考になりました。 どうもありがとうございました!!

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

同じ名前を付けているのなら set cb= document.getElementsByName("CkBx") の様にすると コレクションで cb(0)~cb(9)でそれぞれのチェックボックスが調べられます cb(1).checked cb(1).value とか 違う名前を付けているのなら、 いったん、配列を作成して、そこにそれぞれのチェックボックスを dim cb(10) set cb(0)=document.getElementById("CkBox0") のように、最初にセットするようにするのが楽だと思います。前述と同じように使える

worldwind
質問者

お礼

お返事が非常に遅くなりまして申し訳ありません。 名前の配列からも調べることが出来るのですね。 大変参考になりました! どうもありがとうございました。

  • m035
  • ベストアンサー率44% (38/86)
回答No.2

すいません。 value ↓ checked でした。 これでlogにチェックボックスがチェックされていればtrueが、チェックされていなければfalseが代入されるはずです。

関連するQ&A

  • フォーム上で複数の同じスクリプトを動作させるには

    選択したチェックボックスのvalue値がテキストボックスに表示されるjavascriptについてなのですが、 一つのフォーム上にclass名の異なる複数のチェックボックスを設置した場合、動作しなくなってしまいます。 正確には最初に記述したチェックボックス(下の場合はkeyword1)が動作しません。 一つのフォーム上でclass名の異なる複数のチェックボックスを設置するには、javascriptをどのように書き換えればいいのでしょうか? よろしくお願いします。 <form method="post" action="sample.cgi" name="hoge"> <td> <script language="javascript"> function check(f){ f.keyword1.value=""; for (var i=0; i<f.length;i++){ if(f[i].className=="food" && f[i].checked==true){ f.keyword1.value += f[i].value; } } f.keyword1.readOnly=(f.keyword1.value!=""); } </script> <input type="checkbox" class="food" name="food" onClick="check(this.form)" value="野菜">野菜 <input type="checkbox" class="food" name="food" onClick="check(this.form)" value="魚">魚 <input type="checkbox" class="food" name="food" onClick="check(this.form)" value="惣菜">惣菜 <input value="" size="50" type="text" name="keyword1"> </td> <td> <script language="javascript"> function check(f2){ f2.keyword2.value=""; for (var i=0; i<f2.length;i++){ if(f2[i].className=="city" && f2[i].checked==true){ f2.keyword2.value += f2[i].value; } } f2.keyword2.readOnly=(f2.keyword2.value!=""); } </script> <input type="checkbox" class="city name="city" onClick="check(this.form)" value="東京">東京 <input type="checkbox" class="city name="city" onClick="check(this.form)" value="大阪">大阪 <input type="checkbox" class="city name="city" onClick="check(this.form)" value="福岡">福岡 <input value="" size="50" type="text" name="keyword2"> </td> </form>

  • JavaScript チェックボックスで指定の箇所をチェックする方法

    初めての投稿ですが、よろしくお願いします。m(_ _)m 現在下記ソースの様なチェックボックスで出来たテーブルフォームを作成しております。 一覧表の行or列の先頭にあるチェックボックスを選択すると 選択された行or列にあるチェックボックスを全てチェックされ、 先頭のチェックボックスを外すと全て解除される。 (例:横A□チェックボックスを選択すると右にある全てのチェックボックスが選択される。チェックを外すと右にある全てのチェックボックスが未選択になる。) という事を行いたいと思い、色々調べてみたのですが、 発見できませんでしたので質問させていただきました。 どうかお助けください。m(>_<)m -- <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE></TITLE> </HEAD> <BODY> <form name="F1"> <table border="1"> <tr> <td>一覧</td> <td>縦A<br><input type="checkbox" id="" /></td> <td>縦B<br><input type="checkbox" id="" /></td> <td>縦C<br><input type="checkbox" id="" /></td> </tr> <tr> <td>横A<input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> </tr> <tr> <td>横B<input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> </tr> <tr> <td>横C<input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> <td><input type="checkbox" id="" /></td> </tr> </table> </form> </BODY> </HTML>

  • フォームでの質問

    前にも似たような感じで質問しましたがわかる方ご協力をお願いします。 フォームの機能を使ってURLにページを表示したいのですが アクションが自動で入ったり/スラッシュなどがエンコードされてしまって思うように結果が導き出せません。 フォームを使ってうまくURLに結果を表示させるにはどうしたらよいでしょうか? 私が作ったフォームの内容を記述します。 <form name="form" method="get" action="http://www.abcdffg.co.jp/"> <p>行の項目はひとづつ選んでね!<br /> 例・Aさんをチェック→検索【Aさんのプロフィールを表示】します<br />   Bさんをチェック→イラストをチェック【Bさんのイラストを表示】します</p> <table width="500" border="1"> <tr> <td>プロフィール</td> <td>Aさん<input name="a/" type="checkbox" /></td> <td>Bさん<input name="b/" type="checkbox" /></td> <td>Cさん<input name="c/" type="checkbox" /></td> </tr> <tr> <td>項目</td> <td>イラスト<input name="illust" type="checkbox" /></td> <td>日記<input name="nikki" type="checkbox" /></td> <td>ペット<input name="pet" type="checkbox" /></td> </tr> </table> <p><input type="submit" value="検索"></p> </form> 以上 Bさんをチェック→イラストをチェック【Bさんのイラストを表示】 URL的には【http://www.abcdffg.co.jp/b/illust】となるようにしたい。 もしHTMLのフォームだけではこの結果がえられないとするならばCGIなどなにが必要なのかわかる方いたら教えてください。

    • ベストアンサー
    • HTML
  • スクリプト内でチェックボックスを書き込みたい。

    プログラミング初心者です。 スクリプトを使って、セルの中にチェックボックス100個を生成したいのですが、どのようにやればよいのかわかりません。 セルにIDを指定して document.getElementById("ID名").innerText= <input type="checkbox" name="check">; としようと思ったのですが、うまくいきませんでした。 もしよろしければ、ぜひお答えいただきたいです。 よろしくおねがいします。

  • htmlのフォームのチェックボックスを繰り返し文等を使って複数作りたい

    htmlのフォームのチェックボックスを繰り返し文等を使って複数作りたいのですが、どのように書けば良いのかわかりません。 自分はhtml、PHP、Perlの基本的なことはわかります。 例えば、以下のようなチェックボックスを繰り返し文などを使って作るとすると、どのように書けばよいのでしょうか? <input type="checkbox" name="test">test1 <input type="checkbox" name="test">test2 <input type="checkbox" name="test">test3 <input type="checkbox" name="test">test4 <input type="checkbox" name="test">test5 よろしくお願いします。

    • ベストアンサー
    • HTML
  • [PHP初心者] フォームのエラーチェック

    PHPやデータベースに全く疎い者です。 皆様にご指導頂きたく投稿致します。質問内容もレベルが低いですがどうが宜しくお願いします。 メールフォームにてフォームのボタンを押下し、 エラーチェックをして、エラー項目を同一画面上の上の辺りに表示させたいのですが、、参考書を読んだり、過去スレを拝見しても、どうもわかりません。 <body> //↓この辺をどう書けばいいのか、さっぱりなんです。 <?php if(isset($_POST['mailform'])) { if($_POST['name'] == "") { echo("名前を入力して下さい。<br>"); }} ?> //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ <form method="POST" action="kakunin.php"> <table border="0" cellpadding="5"> <tr> <td colspan="2"></td> </tr> <tr> <td>名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input name="mail" type="text" id="mail" size="20"></td> </tr> <tr> <td>項目</td> <td>     <input type="checkbox" name="check[]" value="PHP">PHP <input type="checkbox" name="check[]" value="Perl">Perl <input type="checkbox" name="check[]" value="ASP">ASP <input type="checkbox" name="check[]" value="JSP">JSP</td> </tr> <tr> <td>お問い合わせ内容</td> <td><textarea rows="5" name="naiyou" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input name="mailform" type="submit" id="mailform" value="::入力内容を確認::">  <input type="reset" name="Submit" value="リセット"></td> </tr> </table> </form> </body>

    • 締切済み
    • PHP
  • フォームの制御について

    下記2つのJavaScriptについて正しい記述方法について、 どうすれば良いかを模索しています。 アドバイスを頂ければ幸いです。 どうぞ何卒よろしくお願い致します。 1.チェックボックスの値とテキストフォームの値を結合する方法 <!-- C02の中から選択されているものを取得// --> for ( var i = 0; i < checkbox02.length; i ++ ) { if ( checkbox02[i].checked === true ) { text += checkbox02[i] + text01. value; text += '\n';}} 2.テキストエリアの値がNullの時に値が出力されないようにする方法 <!-- textarea01の中から選択されているものを取得// --> text += '回答3:' + textarea01 + '\n'; ソース: ----------------------------------------------------------------------------------------- <head> <title>アンケートフォーム</title> <script type="text/javascript">  <!-- 値の加工用// --> function textoutput() { <!-- フォームを変数に// --> var formObj = document.form01; <!-- checkbox01を取得// --> var checkbox01 = formObj.C01; <!-- checkbox02を取得// --> var checkbox02 = formObj.C02; <!-- text01.valueを取得// --> var text01 = formObj.text01.value; <!-- textarea01.valueを取得// --> var textarea01 = formObj.textarea01.value; <!-- textを結合用の変数として準備// --> <!-- チェックボックスの中から選択されているものを取得// --> var text = 'アンケート結果' + '\n'; <!-- C01の中から選択されているものを取得// --> for ( var i = 0; i < checkbox01.length; i ++ ) { if ( checkbox01[i].checked === true ) { text += checkbox01[i]. value; text += '\n';}} <!-- C02の中から選択されているものを取得// --> for ( var i = 0; i < checkbox02.length; i ++ ) { if ( checkbox02[i].checked === true ) { text += checkbox02[i] + text01. value; text += '\n';}} <!-- textarea01の中から選択されているものを取得// --> text += '回答3:' + textarea01 + '\n'; <!-- output.valueにtextを反映(最後に改行コード)// formObj.output.value = text + '\n'; } </script> </head> <body> <strong>アンケートフォーム</strong><br /><br /> <form name="form01"> <!--チェックボックスC01// --> <strong>・回答結果</strong><br /> <table border="0" > <td colspan="2" valign="middle"width="560"> <input type="checkbox" name="C01" value=" →回答1" id="checkbox 1-1" > <label for="checkbox 1-1">回答1</label> <input type="checkbox" name="C01" value=" →回答2" id="checkbox 1-2" > <label for="checkbox 1-2">回答2</label> </td> <tr> <!--チェックボックスC02// --> <td width="86" valign="middle"> <input type="checkbox" name="C02" value=" →その他:" id="checkbox 1-1" > <label for="checkbox 1-1">その他:</label> </td> <td valign="middle"> <input type="text "name="text01" size="60" /><br> </td> </table> <strong>・回答3:</strong><br /> <textarea name="textarea01" cols="60" rows="1" " tabindex="1" STYLE="ime-mode:active"></textarea><br> <!--結果出力// --> 結果出力<br> <input type="button" value="ログ出力" onClick="textoutput();"> <input type="reset" value="リセット" onclick="return confirm('リセットボタンがクリックされました。本当に入力内容を削除してもよろしいですか?');" /><br> <input type="button" name="Copy" value="クリップボードにコピー" onClick="CopyText('output');"><br> <textarea name="output" id="output" cols="60" rows="10"></textarea><br> </form> </body> </html>

  • 同一ページの複数フォームを一括送信したい

    会社にてあるイベントの申込みページを作成している、ほぼ初心者です。 ショッピングカートへとフォームから飛ばしたいのですが、プログラムがよくわからず行き詰っています。 以前の回答にもあったhttp://okwave.jp/qa/q3418439.htmlを真似て作ってみましたが、 最初のものだけをピックアップして実行されてしまいます また、本来はチェックボックスにチェックが入っているもののみを送信したいんです </style> <script language="javascript"><!-- function send() { document.a11.submit(); document.b11.submit(); ・ ・ ・ ・ } //--></script> これをヘッダー内に書き込み <form name="a11" action="/products/detail.php" method="post" target="_blank"> <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="137" /> <input type="hidden" name="product_class_id" value="634" /> <input type="checkbox" name="quantity" value="1" /><br /> </form> <form name="b11" action="/products/detail.php" method="post" target="_blank"> <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="140" /> <input type="hidden" name="product_class_id" value="637" /> <input type="checkbox" name="quantity" value="1" /><br /> </form> ・ ・ ・ ・ ・ というフォームが数十個あります。 数十個あるうちのチェックボックスにチェックが入っているもののみを 送信したいのですが、プログラムの組み方をご教授願えませんでしょうか? 順番としては (1)チェックボックスにチェックが入っているものを認識 (2)チェックボックスにチェックが入っているものを順に送信 という感じなのかなと考えていろいろ調べてみたのですが、 わからない状態です ほぼ初心者なので、お手数ですが、サンプル記述などもいただけると 大変たすかります どうぞよろしくお願いいたします

  • PHP更新フォーム チェックボックス

    入力フォームにて、チェックボックスがあり、チェック送信すると"済"という文字をDBに格納します。 <input type='checkbox' name='check' value='済'> DBに済が格納されていたら、更新フォームのチェックボックスに、チェックが入ってる状態に したのですが、どのようにしたら良いでしょうか? <input type="text" name="checkbox" value="<?php print( $row->checkbox); ?>"> のようにしてもうまくいきません。 ご教授おねがいします。

    • 締切済み
    • PHP
  • フォームで入力項目を全て別の確認画面に出したい

    JavaScriptでフォームを作成しています。 入力項目を別の確認画面に出したいのですが 組み合わせている内に、わからなくなってしまいました。どうかお助けください。(>_<) チェックボックスの所は、3つ以上チェックできないようにしてあります。 1.別ウィンドウ確認画面が出て確認する 2.OKならメールアドレスに送信&ありがとうございましたページへ(確認画面は閉じる) のようにしたいのですが、よろしくお願い致します。m(_ _)m ※尚、初心者の為何か失礼があったらすみません。 スクリプトでは足りない個所があるので、htmlを載せさせて頂きました。 ************************************************ <form name="myFORM" onClick="return check()"> <table> <tr><td> <table> <tr> <td> <input type="radio" name="plan" value="A"> A.</font></strong></div> </td> </tr> </table> <br> <table> <tr> <td> <input type="radio" name="plan" value="B"> B. </td> </tr> </table> <br> <table> <tr> <td>あ</td> <td> <input name="CB1" type="checkbox" id="CB12" value="あ"> </td> </tr> </table> チェックボックス全10項目中チェック3つまで<br> <br> *印は必須項目です<br> <table> <tr> <td>申込み内容</td> </tr> <tr> <td>会社名*</td> <td><input type="text" name="jimusho_name" size="30"></td> </tr> </table> テキストフォーム全9項目<br> <p>&nbsp; <input name="button" type="button" onClick="outdata();" value="送 信"> <input name="reset" type="reset" value="キャンセル">

専門家に質問してみよう