• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最も多くチェックされた項目を調べる)

javascriptで最も多くチェックされた項目を調べる方法

このQ&Aのポイント
  • javascriptを使用して、フォームの各質問の回答を取得し、最も選択された項目を調べる方法について説明します。
  • 選択された回答をカウントするためにオブジェクトを使用し、最も多く選択された項目を見つけます。
  • 最終的に、最も選択された項目に基づいて分岐するプログラムを作成することができます。

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

  • ベストアンサー
回答No.2

<!DOCTYPE html> <title></title> <meta charset="utf-8"> <body> <form onsubmit="color(event)"> <p>好きな動物は? <p> <label><input type="radio" name="q1" value="A">うさぎ</label> <label><input type="radio" name="q1" value="B">カメ</label> <label><input type="radio" name="q1" value="C">イルカ</label> <label><input type="radio" name="q1" value="D">くま</label> <p>好きな場所は? <p> <label><input type="radio" name="q2" value="A">空</label> <label><input type="radio" name="q2" value="B">森</label> <label><input type="radio" name="q2" value="C">海</label> <label><input type="radio" name="q2" value="D">畑</label> <p>好きな食べ物は? <p> <label><input type="radio" name="q3" value="A">豆腐</label> <label><input type="radio" name="q3" value="B">ブロッコリー</label> <label><input type="radio" name="q3" value="C">なす</label> <label><input type="radio" name="q3" value="D">ハンバーグ</label> <p> <input type="submit" value="診断"> </form> <script> function color (event) {  var col = {A: '白', B:'緑', C:'青', D:'茶色'};  var form = event.target;  var list = [   form.querySelectorAll ('input[type="radio"][name^=q][value="A"]:checked'),   form.querySelectorAll ('input[type="radio"][name^=q][value="B"]:checked'),   form.querySelectorAll ('input[type="radio"][name^=q][value="C"]:checked'),   form.querySelectorAll ('input[type="radio"][name^=q][value="D"]:checked')  ];  var radio = list.reduce (function (a, b) { return a.length < b.length ? b: a});  var result = radio.length ? col[radio[0].value] + 'が好き': 'ひねくれもの';    alert ('あなたは、' + result);    event.preventDefault (); } </script>

trueplace
質問者

お礼

うおおおおおお!! 素晴らしすぎです!感激です! これを改造して作っていこうと思います!! ありがとうございましたm(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.1

選択肢ごとにカウンターを設定し最後に不等号式で判断すればいいだけでは? つまり、設問1でAが選択されたらカウンターAを+1、以下設問2位光も同様の処理をする。 あとは分かりますよね。 小学生の算数と中学生レベルの数学の範疇のはずです。

trueplace
質問者

お礼

さっそく回答ありがとうございます!! 私の説明不足でした! おっしゃるとおりそのような計算式の概要はわかったのですが 具体的な計算式がわからなかったので その参考となるスクリプトのヒントをもらえないかと思って質問しました。 自分で本などを見よう見まねで書いてみましたが 上手く動かなかったのでここで質問してみた次第です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CGIでチェックボックスのエラーチェック

    下記のような感じで チェックボックスをいくつか配置し、CGIで動かしています。 それぞれの質問に関して未選択がある場合、 メッセージボックスで「未選択があります」と表示させたいです。 できればjavascriptでなくCGIでやりたいです。 どのようにコードを書けばいいですか? ためしに以下のように書いてみましたがだめでした。 ・・・ elsif ($q1 eq "" && $q2 eq "") { &error($error = "すべての項目に回答して下さい"); } ・・・ お願いいたします! <form name="q1" action="test.cgi" method="POST"> Q1 <input type="radio" name="q1" value="q1_a"> A <input type="radio" name="q1" value="q1_b"> B <input type="radio" name="q1" value="q1_c"> C Q2 <input type="radio" name="q2" value="q2_a"> D <input type="radio" name="q2" value="q2_b"> E <input type="radio" name="q2" value="q2_c"> F </form>

    • ベストアンサー
    • CGI
  • selectした項目によって、radioボタンの値を変える方法

    selectボックスの値によって、ラジオボタンに自動的にチェックを入れるというものを作りたいのですが、やり方がわからないのでどなたか回答をお願いします。 selectボックスは、 <select name="Q01" id="Q01"> <option selected>▼選択</option> <option value="1">Aコース</option> <option value="2">Bコース</option> <option value="3">Cコース</option> </select> というようなものを用意しています。 ラジオボタンは、 <label for="Q02_1"> 有り<input name="Q02" type="radio" id="Q02_1" value="0" checked> </label> <label for="Q02_2"> 無し<input name="Q02" type="radio" id="Q02_2" value="1"> </label> <label for="Q03_1"> 有り<input name="Q03" type="radio" id="Q03_1" value="0" checked> </label> <label for="Q03_2"> 無し<input name="Q03" type="radio" id="Q03_2" value="1"> </label> <label for="Q04_1"> 有り<input name="Q04" type="radio" id="Q04_1" value="0" checked> </label> <label for="Q04_2"> 無し<input name="Q04" type="radio" id="Q04_2" value="1"> </label> ・ ・ ・ ・ というようなものを用意しています。 Aコースを選ぶと、 Q02は「有り」、Q03は「無し」、Q04は「有り」 Bコースを選ぶと、 すべて「有り」 Cコースを選ぶと、 すべて「無し」 というような、コースによってラジオボタンにチェックが入るという仕組みです。 宜しくお願い致します。

  • 複数のラジオボタンのチェック

    複数のラジオボタンが全て選択されているかどうかのチェックのJavaScriptをすっきりした形で書くのは、どうしたらいいでしょうか? 下記のようですと、ダラダラと記述するようになってしまいます。 どなたかご教授ください。 --------------------------------------- <script type="text/javascript"> function insert_onClick() { j=0; for (i=0 ;i < document.F1.a11.length ; i++){ if (document.F1.a11[i].checked) { j=1; } } } </script> <form action="check.php" name="F1" onsubmit="return insert_onClick()"> 各valueは0~4まであります <input type="radio" name="a11" value="0"> <input type="radio" name="a12" value="0"> <input type="radio" name="a21" value="0"> <input type="radio" name="a22" value="0"> <input type="radio" name="b11" value="0"> <input type="radio" name="b12" value="0"> <input type="radio" name="b21" value="0"> <input type="radio" name="b22" value="0"> ---------------------------------------

  • チェックに応じて違うチェックボックスをアクティブにしたい

    次のHTMLのように、大分類、小分類のような構成のチェックボックス グループがあります(初期設定は全部チェック無しです) 普段は[a][b][c][d]をdisableとしておき、(1) にチェックが入った 場合に[d]以外([a][b][c])アクティブ(?とにかくチェックを入れる ことができる)ようにするにはどうしたらいいでしょうか。 よろしくお願い致します。 <form id="Form1"> : <INPUT TYPE="CHECKBOX" NAME="food" value="果物">(1) 果物 <INPUT TYPE="CHECKBOX" NAME="food" value="野菜">(2) 野菜 <INPUT TYPE="CHECKBOX" NAME="food" value="肉魚">(3) 肉魚 <br> <INPUT TYPE="CHECKBOX" NAME="fruit" value="りんご">[a] りんご <INPUT TYPE="CHECKBOX" NAME="fruit" value="みかん">[b] みかん <INPUT TYPE="CHECKBOX" NAME="fruit" value="ぶどう">[c] ぶどう <INPUT TYPE="CHECKBOX" NAME="fruit" value="バナナ">[d] バナナ : </form>

  • チェックボタンの受け取り方法

    フォーム作成したチェックボタンの受け取り方法を教えてください。 javaのプログラムを書きたいのですがわかりません。助けてください。 <html> <head> <title>練習</title> <body> <script language="Java Script"> <!-- function send_form(){ for(i=0;i<5;i++){ if(document.form1.Q1[i].checked==true){ int a1=i; return a1; } } } //--> </script> </head> <p> <form action=http://localhost:8080/MyApp/servlet/Param2 method=get> Q1 質問をここに書き込む </p> <form name="form1" action="cgi-bin/formsample.cgi" method="post" onSubmit="return send_form()"> <p> <input type='radio'name='Q1'>思う <input type='radio'name='Q1'>やや思う <input type='radio'name='Q1'checked>どちらでもない <input type='radio'name='Q1'>やや思わない <input type='radio'name='Q1'>思わない </p> <input type="submit" value="送信する"><input type="reset" value"書き直す"> </form> </body> </html>

    • ベストアンサー
    • Java
  • checkbox 特定項目だけを、チェックするには

    こんにちは。いつもお世話になります。 checkbox内で、同じnameの中から特定のものだけ チェックさせるにはどうしたら良いでしょうか。 条件として、name='or52'の部分は変更出来ません。 <input type='button' value='A,B,Cだけを同時にチェック' onclick='checkAll();'> <form action='xxx.cgi' method='post' name='f1'> <input name='or5' type='checkbox' value='A'><br> <input name='or5' type='checkbox' value='B'><br> <input name='or5' type='checkbox' value='C'><br> <input name='or5' type='checkbox' value='D'><br> <input name='or5' type='checkbox' value='E'><br> <input name='or5' type='checkbox' value='F'><br> ......... </form> それで、こんなのをウェブから探してきました。 function checkAll() { for (i=0; i<7; i++) document.f1.elements["or52"+i].checked = true; } そして、同時にチェックしたいものだけ下記の様にしました。 <input name='or52' type='checkbox' value='A' id='or51'> <input name='or52' type='checkbox' value='B' id='or52'> <input name='or52' type='checkbox' value='C' id='or53'> 取りあえずできますが、エラーがでます。 「document.f1.elements["..."]は、objまたはnullではない!」 どうか教えて下さい。よろしくお願いします。

  • オブジェクト名に変数を使いたい

    <form id="form1" name="form1" method="post" action=""> <label for="q1-1"><input id="q1-1" name="q1" type="radio" value="1" />あ</label> <label for="q1-2"><input id="q1-2" name="q1" type="radio" value="0" />い</label> <label for="q1-3"><input id="q1-3" name="q1" type="radio" value="0" />う</label> <label for="q1-4"><input id="q1-4" name="q1" type="radio" value="0" />え</label> <label for="q2-1"><input id="q2-1" name="q2" type="radio" value="1" />あ</label> <label for="q2-2"><input id="q2-2" name="q2" type="radio" value="0" />い</label> <label for="q2-3"><input id="q2-3" name="q2" type="radio" value="0" />う</label> <label for="q2-4"><input id="q2-4" name="q2" type="radio" value="0" />え</label> </form> ============================================================ 上のような4択の問題が10問あります。 これを採点して合計点数を表示させたいと思っていますが、 下記のようにfor文を使う際、オブジェクト名の、"q1"の"1"というところに変数nを使いたいのですが、やり方がわかりません。 ============================================================ for(var n=0;n<10;n++){ var length=document.form1.q1.length; for(var i=0;i<length;i++){ var checked=document.form1.q1[i].checked; if(checked==true){ ans = i; } } var value=document.form1.q1[ans].value; } ============================================================ いろいろ調べてみましたが、うまくいかず固まっております。 どなたかご教授いただけませんでしょうか?

  • チェックされたラジオボタンにフォーカスを移動したい

    <LABEL><INPUT type="radio" id="a" value="0" checked>すべて</LABEL><BR> <LABEL><INPUT type="radio" id="a" value="1">一部</LABEL><BR> <LABEL><INPUT type="radio" id="a" value="2">なし</LABEL><BR> <LABEL><INPUT type="radio" id="b" value="0" checked>すべて</LABEL><BR> <LABEL><INPUT type="radio" id="b" value="1">一部</LABEL><BR> <LABEL><INPUT type="radio" id="b" value="2">なし</LABEL><BR> <LABEL><INPUT type="radio" id="c" value="0" checked>すべて</LABEL><BR> <LABEL><INPUT type="radio" id="c" value="1">一部</LABEL><BR> <LABEL><INPUT type="radio" id="c" value="2">なし</LABEL><BR> ・・・ のようにラジオボタンがグループ別に並んでいる場合に Enterキーを押したときにフォーカスが次のラジオボタングループの チェックが入ったラジオボタンにフォーカスを移動したいのですが、 何かいい方法はないでしょうか?

  • (jQuery)ラジオボタン選択値を配列で送信

    ちょっと前に別の方の同名の質問があり、正しい回答が出る前に、例によって不適切な回答で閉め切られてしまったため、失礼とは存じますが改めて質問させていただきます。 <form id="enqe" action="/hoge/enqe" method="post"> <label for="group_a">好きなフレームワーク</label> <input type="radio" name="group_a" value="a1">cake php</input> <input type="radio" name="group_a" value="a2">fuel php</input> <input type="radio" name="group_a" value="a3">symphony</input> <label for="group_b">使っているOS</label> <input type="radio" name="group_b" value="b1">windows</input> <input type="radio" name="group_b" value="b2">macintosh</input> <input type="radio" name="group_b" value="b3">linux</input> <label for="group_c">使っているCPU</label> <input type="radio" name="group_c" value="c1">ivy bridge</input> <input type="radio" name="group_c" value="c2">sandy bridge</input> </form> のような選択肢があって、選択値を配列で送信したいです。 配列で受けたい理由は、送信側のフォーム(項目、グループ分け)が逐次追加変更される予定で、それに合わせてDBだけを変更して対応したいからです。 したがって、「毎度サーバサイドで対応しろ」という回答は困ります。 <input type="hidden" name="gval[]" value="a1" /> <input type="hidden" name="gval[]" value="b2" /> <input type="hidden" name="gval[]" value="c3" /> という内容を生成して送信すればいいのはわかりますが、どう記述したらいいかがわかりません。 いちおうjQueryで、 $('form#enqe').submit(function(){ // $(this).find("input[type='radio']"); で、<input type="radio">を取得 }); まではわかりましたが、jQueryに疎く、その先がわかりません。 識者の方々のお力をお借りできれば幸いです。

  • scriptについて質問です。

    自分のサイトにチェッカーを入れたくて下記の記述を書きました。 <script> function calc(f){ var sum=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) sum+=parseInt(f[i].value); } f.judge.value=sum; } </script> <form action="chekker/" method="post"> <ol> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q1" id="Q1_1" value="2"><label for="Q1_1">はい</label> <input type="radio" name="Q1" id="Q1_2" value="0"><label for="Q1_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q2" id="Q2_1" value="2"><label for="Q2_1">はい</label> <input type="radio" name="Q2" id="Q2_2" value="0"><label for="Q2_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q3" id="Q3_1" value="2"><label for="Q3_1">はい</label> <input type="radio" name="Q3" id="Q3_2" value="0"><label for="Q3_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q4" id="Q4_1" value="2"><label for="Q4_1">はい</label> <input type="radio" name="Q4" id="Q4_2" value="0"><label for="Q4_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q5" id="Q5_1" value="2"><label for="Q5_1">はい</label> <input type="radio" name="Q5" id="Q5_2" value="0"><label for="Q5_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q6" id="Q6_1" value="2"><label for="Q6_1">はい</label> <input type="radio" name="Q6" id="Q6_2" value="0"><label for="Q6_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q7" id="Q7_1" value="2"><label for="Q7_1">はい</label> <input type="radio" name="Q7" id="Q7_2" value="0"><label for="Q7_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q8" id="Q8_1" value="2"><label for="Q8_1">はい</label> <input type="radio" name="Q8" id="Q8_2" value="0"><label for="Q8_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q9" id="Q9_1" value="2"><label for="Q9_1">はい</label> <input type="radio" name="Q9" id="Q9_2" value="0"><label for="Q9_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q10" id="Q10_1" value="2"><label for="Q10_1">はい</label> <input type="radio" name="Q10" id="Q10_2" value="0"><label for="Q10_2">いいえ</label> </ol> <center> <p><font size="+1" color="#FF0000"><b>採点!!</b></font></p> <input type="text" name="judge" value="0" SIZE="10"> <input type="button" value="採点する" onClick="calc(this.form);window.open('kekka.html','windowname');"> </p></center> </form> 質問項目が10個あるのですが、どれか一つにでもチェックが入っていない場合 「全てチェックしてください」と返したいのですがどうすればいいのでしょうか? また点数の合計が10点の時は1.html 点数が14点の時は2.htmlという場合どういった記述をすればいいのでしょうか? ご面倒ですが回答のほどよろしくお願いします。

このQ&Aのポイント
  • 筆まめVer.30のサポート終了に関するお困りごとがあります。年に一度の新バージョン購入はしない方にとっては、旧バージョンアップ情報の案内が続くのは困ります。いつまで案内が続くのか、また止める方法を教えてほしいです。
  • 筆まめVer.30のサポート終了について疑問があります。毎年新しいバージョンの購入をしない方にとって、旧バージョンアップ情報の案内を受け続けるのは不要です。案内がいつまで続くのか、また止める方法を教えてほしいです。
  • 筆まめVer.30のサポート終了に不満があります。毎年新しいバージョンを購入しないユーザーにとっては、旧バージョンアップ情報の案内は迷惑です。案内がいつまで続くのか、止める方法を教えてください。
回答を見る

専門家に質問してみよう