• 締切済み

フォームのチェックボックスのチェックされた数によって・・・。

チェックボックスが数種類あり最後に送信ボタンを押して、リンクを飛ばしたいと思っています。 どのチェックボックスがチェックされたかによって、(複数チェックのケースありです)その条件によって飛ぶようにしたいのですが、onsubmitをしてfor文を通して、if~else文で条件定義してそれぞれ飛ばしたらいいぐらいはわかるのですが、それ以降が・・・。 本やネットのjavascriptについて書かれているところも読んでみましたがもひとつ具体的にどこをどうすれば良いのかわかりません。 どなたか助けてもらえないでしょうか?

みんなの回答

  • atsuota
  • ベストアンサー率33% (53/157)
回答No.1

こんな感じでしょうか。 <script language="JavaScript"> <!-- function hoge(){ //送信ボタンが押されたときの処理 if(条件1){ location.href="aaa.html";//条件1に該当するページ return false; }else{ location.href="bbb.html";//そうでないときのページ return false; } } //--> </script> 条件がもっと多い場合はswitch文がよいでしょう。 switch(値){ case 値1: location.href="aaa.html"; break; case 値2: location.href="bbb.html"; break; ............. } といった感じですね。「値」が「値1」のときはaaa.htmlに、「値2」のときはbbb.htmlに…、とジャンプします。

関連するQ&A

  • フォームのチェックボックスの入力チェック JavaScriptの添削依

    フォームのチェックボックスの入力チェック JavaScriptの添削依頼 フォーム制作しています。 複数選択可能なチェックボックスの入力チェックを行いたいのですが、 動かず困っています。 JavaScriptの添削をお願いします。 他のチェック項目との兼ね合いもあり、 JavaScriptはform.jsに記載したいこと、 チェックボックスが未選択の場合は、flag に 1 を入れること、 チェックボックスの数が多いため、それぞれ違う name を振る方法は避けたいこと、 が制作の条件になっています。 ■index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> </head> <html> <head> <!-- *** javascript *** --> <script src="form.js" type="text/javascript" charset="utf-8"></script> </head> <body bgcolor="#ffffff"> フォームの入力で未入力のチェックを行います。 <form method="post" onSubmit="return chkform()" name="form1"> <input type="checkbox" name="chk[]" value="OK">OK <input type="checkbox" name="chk[]" value="NG">NG <input type="checkbox" name="chk[]" value="GOOD">GOOD <br> <br> <input type=submit value=" 送信 "> <input type=reset value=" 取消 "> </form> </body> </html> ■form.js function chkform() { var flag = 1; var list=document.getElementsByName(chk); for(var i=0;i<list.length;i++){ if(list[i].checked){ flag = 0; break; } } if(flag == 1){ window.alert('チェックボックスが未選択です'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } else { return true ; } }

  • チェックボックスの使い方

    VBスクリプトでよくわからないところがあるので教えてください。たくさんのチェックボックスがあるので、For i To ~Next の構文を使って効率よくチェックされたものだけSQLの構文に取り入れて検索しようとしたのですがうまくゆきません。どのようにしたらよいでしょうか。 今試してみたのは、検索条件の設定画面で、 <input type=checkbox name=tatemono(0) value=自社使用>自社使用 <input type=checkbox name=tatemono(1) value=事業用>事業用 <input type=checkbox name=tatemono(2) value=電算センター >電算センター というようなチェックボックスを 検索処理用ページで SQL="SELECT * FROM [データ] " 'チェックボックスのチェック数が0でなければWHERE文をいれるflagをTrueにしておく If Request.Form("tatemono").Count>0 Then SQL=SQL & "WHERE " flag=True End If 'チェックボックスを最初から調べてチェックされていたらその項目がyesになっているという条件をSQL文に追加する For i=1 To Request.Form("tetemono").Count If Request.Form("tatemono")(i)<>"" Then fldname=Request.Form("tetemono")(i) If flag=True Then SQL = SQL & "AND" Else SQL = SQL & "WHERE" End If SQL= SQL & fldname & "=Yes" End If Next とやってみたのですが、ぜんぜん駄目みたいです。 根本的にどこか間違ってますよね・・・。 直すところを教えてください。 お願いします。

  • チェックボックスのチェック。応用編

    こんにちわ。 チェックボックスがチェックされているかのチェックを行いたいのですが、チェックボックスをデータベースにある内容をループで表示させ、チェックされたデータをPOSTで送信するために少々submitの使い方が違います。 削除ボタンを押すと確認画面がでてOKを押した場合にチェックボックスにチェックされていなければ警告画面を出したいのですが、どうもうまくいきません。 よい方法をご教授ねがえないでしょうか。 ==FORM======================================= <form method ="POST" name="form1" onSubmit="return check()" action ="****" > <% Iterator it =sagyoubi.iterator(); // 検索された行数分ループ while(it.hasNext()){ String item= (String)it.next(); %> <INPUT TYPE="CHECKBOX" NAME="sagyoubii" VALUE="<%= item %>"><a href="****" target="Main"> <% } // end while %> <INPUT TYPE="button" VALUE="削除" style="font-size:18" onclick="if(confirm('これらのデータを削除してもよろしいですか?')) { submit(); }"> </form> ==SCRIPT================================= <SCRIPT TYPE="text/javascript"> <!-- function check(){ var flag = 1; if(document.form1.sagyoubii.checked){ flag = 0; } if(flag){ window.alert('チェックされていません'); return false; // 送信を中止 } else{ return true; // 送信を実行 } } //--> </SCRIPT>

  • チェックボックスの入力チェック

    JSPでJavaScript使用しています。 no.logからテキスト(1~80までの数値がランダムに書いてある)を読みこんで、その数字でチェックボックスを作り、チェックの付いている番号を違うJSPに飛ばしています。この時どこもチェックされて無ければメッセージを表示したいのですがうまくいきません。 チェックが付いているのに、チェックされていないと認識され、メッセージが表示されてしまいます。5行目のif文が問題だと思うのですが、どうすればいいのかわかりません。アドバイス下さい。宜しく御願いします。 <script language="JavaScript"> <!-- function check(){ no = document.form1.no.value; if(no == null){ alert("チェックしてください"); return false; } } //--> </script> <form name="form1" method="post" action="test2.jsp" onSubmit="return check()"> <% String str = null; int tmpn = 0; int count = 0; BufferedReader br2 = new BufferedReader(new FileReader(getServletContext().getRealPath("/WEB-INF/no.log"))); while((str = br2.readLine()) != null) { tmpn = Integer.parseInt(str); count++; if(tmpn >= 1 && tmpn <= 9){ %> <input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>">0<%= tmpn %> <% }else{ %> <input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>"><%= tmpn %> <% if(count == 10){ out.print("<br>"); count = 0; } } } %> <input type="submit" value="送信">

  • JSP内で可変するチェックボックスの選択数を数える

    下記のソースのように数が変化するチェックボックスに各name属性が 割り当てられている場合、JavaScriptでチェックボックスの数を数える 際にfor文を使用したいのですが for (var i = 0 ; i <= ????? ; i++ ) の?????の部分はどのように記述すればよいのでしょうか (チェックボックスの数がいくつあるかをどのように表すのか) <% for(int i = 0; i < list.size(); i++ ) { ArrayList data = (ArrayList) list.get(i); %> <tr class="listTr"> <td class="<%= data.get(8) %>" id="set11"> <% if(data.get(0).equals("1")) { out.println("<input type='checkbox' name='output" + i + "' value='1' "' checked>"); } else { out.println("<input type='checkbox' name='output" + i + "' value='1' "'>"); } %>

  • 多数のチェックボックスをつかった分岐について

    現在、チェックボックスとリストボックスで条件を選択して条件に合う検索結果を出力するプログラムを作っています。 やりたいことは、チェックボックスは複数選択可能で、リストボックスとチェックボックスの組み合わせによってそれぞれ出力結果を変えたいです。リストボックスには項目が3つ、チェックボックスには項目が6つあります。 ここでそれぞれif文で分岐しようと考えたんですが、あまりにもパターンが多すぎて どうしようという状況です。なにかいい方法がありますでしょうか。 よろしくお願い致します。

  • チェックボックスの入力チェックについて

    VB.NETに関する質問です。 画面の一覧(SPREAD等)にチェックボックスがあり、 全てのチェックボックスにチェックがついているかどうかを調べたいです。 「もし一つでもチェックがついていた場合は、チェック処理から即座に抜け、 もし全てのチェックがついていない場合は、エラーメッセージを出力する」 という動作を求めています。 例えば、 For intRowIndex As integer = 0 To MaxRowCount - 1 If CBool(Cells(intRowIndex, checkboxColumn).Value) Then '' チェックがついている場合 Exit For Else If intRowIndex = MaxRowCount Then '' エラーメッセージ出力 End If End If Next という処理で求める動きは可能ですが、 もう少しスマートなロジックがないかと考えています。 どなたか教えて頂けませんでしょうか?

  • 複数チェックボックスの入力制限について

    現在PHP5.05+Mysql4.0.25にて、プログラムを作成しておりますが、 例えば10個のチェックボックスに対して、入力を2個まで とするのに、Javascriptで出来るのを見つけましたが、 それはformタグ内で、数えている為に、 複数のチェックボックスのグループがあると 一度に送信出来なくなってしまいます。 一度に、複数のチェックボックスのグループの データを送信するのに、何かよい方法はありますでしょうか、 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • チェックボックス(複数)

    formタグの中にfor文がありにチェックボックスが複数表示されます。この内容をPOSTで受け取るにはどのように書いたらいいですか??教えてください

  • チェックボックスの制限の仕方について

    JavaScriptを使ってチェックボックスのチェック制限をしたいのですが、「二つまでチェック」というところに二つ以上チェックした時点で(「送信」等を押す前に)警告が返ってくるようにしたいのですが、分かりません。こういった制限をかけたい質問が同一ページに複数並べようと思います。お願いします。