回答群のチェック数制限方法

このQ&Aのポイント
  • 回答群の中から、規定数のチェックをもらう方法を探しています。
  • YESとNOのチェックを3つずつ取得する方法を考えています。
  • YESならYES、NOならNOでチェック数を制限し、4つ以上の場合は処理方法を教えてください。
回答を見る
  • ベストアンサー

回答群の中から、規定数チェックしてもらいたい

10個くらいの質問内容に対して、YESとNOの各々に3つずつチェックしてもらうようにするには、どうしたら良いのでしょう? とりあえずは、 1.同じ質問にYESとNOの両方にチェックできないようにしたい。 2.YESならYES、NOならNOで、チェックが3つ未満ならダイアログか何かで「チェック数が足りない事」を表示。 3.又、チェックが4つ以上にならないようにしたい。 上記の事を実現できる術があれば、教えていただきたいです。 よろしくお願いします。 ※追記 1についてはラジオボタンで解決できるかと思うのですが、そうした時に4つ以上チェックを入れた時にどういう処理をさせたら良いのかわかりませんでした。

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

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

ログを残して3つ以上選択の場合古い順に回答をキャンセルする。 クリアボタンでログも初期化するので安心。 <html> <head> <script type="text/javascript"> <!-- var log=""; var k=3;//規定数 function ch(n){ log+=""+n; if(check(1)>k){ var num=Number(log.charAt(0))*3-3; window.alert("チェック項目が多すぎます。回答を古い順にキャンセルします。"); document.fo.elements[num].checked=false; document.fo.elements[num+1].checked=false; document.fo.elements[num+2].checked=true; log=log.split((num+3)/3).join(""); } } function check(cnt){ var c=0;//カウンタ for(i=0;i<document.fo.elements.length;i++){ if(document.fo.elements[i].checked&&(i+1)%3!=0){ c++; } } if(cnt){ return c; } else{ if(c<k){ window.alert("チェック項目が足りません。(あと"+(k-c)+"個)"); } else if(c>k){ window.alert("チェック項目が多すぎます。("+(c-k)+"個オーバー)"); } else{ //チェック数が規定数どおりの場合の処理。document.submit();など } } } //--> </script> </head> <body> <form name="fo"> Q1:<INPUT type="radio" name="q1" onclick="ch(1)">yes  <INPUT type="radio" name="q1" onclick="ch(1)">no  <INPUT type="radio" name="q1" checked>回答しない<br> Q2:<INPUT type="radio" name="q2" onclick="ch(2)">yes  <INPUT type="radio" name="q2" onclick="ch(2)">no  <INPUT type="radio" name="q2" checked>回答しない<br> Q3:<INPUT type="radio" name="q3" onclick="ch(3)">yes  <INPUT type="radio" name="q3" onclick="ch(3)">no  <INPUT type="radio" name="q3" checked>回答しない<br> Q4:<INPUT type="radio" name="q4" onclick="ch(4)">yes  <INPUT type="radio" name="q4" onclick="ch(4)">no  <INPUT type="radio" name="q4" checked>回答しない<br> Q5:<INPUT type="radio" name="q5" onclick="ch(5)">yes  <INPUT type="radio" name="q5" onclick="ch(5)">no  <INPUT type="radio" name="q5" checked>回答しない<br> Q6:<INPUT type="radio" name="q6" onclick="ch(6)">yes  <INPUT type="radio" name="q6" onclick="ch(6)">no  <INPUT type="radio" name="q6" checked>回答しない<br> Q7:<INPUT type="radio" name="q7" onclick="ch(7)">yes  <INPUT type="radio" name="q7" onclick="ch(7)">no  <INPUT type="radio" name="q7" checked>回答しない<br> Q8:<INPUT type="radio" name="q8" onclick="ch(8)">yes  <INPUT type="radio" name="q8" onclick="ch(8)">no  <INPUT type="radio" name="q8" checked>回答しない<br> Q9:<INPUT type="radio" name="q9" onclick="ch(9)">yes  <INPUT type="radio" name="q9" onclick="ch(9)">no  <INPUT type="radio" name="q9" checked>回答しない<br> Q10<INPUT type="radio" name="q10" onclick="ch(10)">yes  <INPUT type="radio" name="q10" onclick="ch(10)">no  <INPUT type="radio" name="q10" checked>回答しない<br> <INPUT type="button" value="決定" onclick="check()"><INPUT type="reset" value="クリア" onclick="log='';"><br> </form> </body> </html>

TMEspion
質問者

お礼

回答ありがとうございます。大変参考になりました。

その他の回答 (1)

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

↓これでどうでしょう? <html> <head> <script type="text/javascript"> <!-- function check(){ var c=0;//カウンタ var k=3;//規定数 for(i=0;i<document.fo.elements.length;i++){ if(document.fo.elements[i].checked&&(i+1)%3!=0){ c++; } } if(c<k){ window.alert("チェック項目が足りません。(あと"+(k-c)+"個)"); } else if(c>k){ window.alert("チェック項目が多すぎます。("+(c-k)+"個オーバー)"); } else{ //チェック数が規定数どおりの場合の処理。document.fo.submit();など } } //--> </script> </head> <body> <form name="fo"> Q1:<INPUT type="radio" name="q1">yes  <INPUT type="radio" name="q1">no  <INPUT type="radio" name="q1" checked>回答しない<br> Q2:<INPUT type="radio" name="q2">yes  <INPUT type="radio" name="q2">no  <INPUT type="radio" name="q2" checked>回答しない<br> Q3:<INPUT type="radio" name="q3">yes  <INPUT type="radio" name="q3">no  <INPUT type="radio" name="q3" checked>回答しない<br> Q4:<INPUT type="radio" name="q4">yes  <INPUT type="radio" name="q4">no  <INPUT type="radio" name="q4" checked>回答しない<br> Q5:<INPUT type="radio" name="q5">yes  <INPUT type="radio" name="q5">no  <INPUT type="radio" name="q5" checked>回答しない<br> Q6:<INPUT type="radio" name="q6">yes  <INPUT type="radio" name="q6">no  <INPUT type="radio" name="q6" checked>回答しない<br> Q7:<INPUT type="radio" name="q7">yes  <INPUT type="radio" name="q7">no  <INPUT type="radio" name="q7" checked>回答しない<br> Q8:<INPUT type="radio" name="q8">yes  <INPUT type="radio" name="q8">no  <INPUT type="radio" name="q8" checked>回答しない<br> Q9:<INPUT type="radio" name="q9">yes  <INPUT type="radio" name="q9">no  <INPUT type="radio" name="q9" checked>回答しない<br> Q10<INPUT type="radio" name="q10">yes  <INPUT type="radio" name="q10">no  <INPUT type="radio" name="q10" checked>回答しない<br> <INPUT type="button" value="決定" onclick="check()"><INPUT type="reset" value="クリア"><br> </form> </body> </html>

TMEspion
質問者

お礼

正直、こんなに早く回答が来るとは思ってなかったです。 回答ありがとうございます。 やっぱりラジオボタンで行くとなると、「回答しない」の第3の選択肢が必要になってきますかー。 4つ目をクリックしたら、1つ目にクリックしたところのチェックが外される!なんて事は、難しいんでしょうかね?

関連するQ&A

  • アクセス クエリ検出方法

    お世話になります 初歩的な質問で申し訳ないのですが 下記のDBがあるとします すべてYes/No型です 可愛系|綺麗系|チェック済| Yes |No |Yes | Yes |yes |No | No |No |No | Yes |yes |Yes | Yes |yes |No | Yes |No |No | 上記の可愛系か綺麗系のどちらかにチェックが入っていれば(Yes)検出(両方チェックも有り) チェック済みがNoだけを残したいのですが 下記結果 可愛系|綺麗系|チェック済| Yes |yes |No | Yes |yes |No | Yes |No |No | 下記ここまではできました FROM データーベース WHERE (((データーベース.可愛系)=Yes)) OR (((データーベース.綺麗系)=Yes)); できないところはチェック済みのYesを除外したいのですが WHERE (((データーベース.可愛系)=Yes) AND ((データーベース.チェック済)=No)) OR (((データーベース.綺麗系)=Yes)); 上記を実行してもチェック済みYesを除外できません どなたか修正と修正に対して説明できるかた、ご教授願います

  • ACCESSでテーブルにあるチェックボックスを一括でYesにする方法を教えてください

    アクセスのテーブルにあるYes/No型のチェックボックスを、コマンドボタンを押すことによって、全てのレコードをYes(チェックが入っている状態)又はNo(チェックが入っていない状態)にする 方法を教えてください。自分で、参考書をみながら試みたのですが、NoをYesに変えられたのですが、全部Yesにならなくて困っています。 (NoはYesになりますが、元々YesだったところがNoになってしまう) まだ、VBA初心者ですので、小学生(実際は中年?)にも解るように教えていただければ幸いです。よろしくお願いします。

  • ACCESS Yes/No型の集計

    ACCESSでチェックボックスが複数あるテーブルがあります。これら各々の個数を表示させたいと奮闘しております。複数のフィールドがあるので、やり方をご教授いただけますようお願いいたします。構造とやりたいことは下記に記します Yesはチェックボックスにチェックが入っている状態です テーブル ---------------------------------------------- グループ   分類1   分類2   分類3 ----------------------------------------------   A   |  Yes  |  No  |  Yes   A   |  No   |  No   |  Yes   A   |  Yes  |  Yes  |  No   B   |  Yes  |  No  |  Yes   B   |  No   |  No  |  Yes   B   |  Yes  |  No  |  Yes   ・   ・   ・   ZZ 上記のようなテーブルがあります。これを ----------------------------------------------------- グループ   グループ総数   分類1   分類2   分類3 -----------------------------------------------------   A    |   3     |   2   |  1   |  2   B    |   3     |   2   |  0   |  3   ・   ・   ・   ZZ とういうようにグループの総数とチェックボックスにチェックが入った数を算出させたいんです どうかご教授願います

  • Access チェックボックスを利用した絞込検索のクエリ記述

    ここ数日、試行錯誤やgoogle検索したのですが、分からないためヒントを下さい。 Accessで、チェックボックス(Yes/No)を含むテーブルがあります。 検索フォームを作成し、ここにチェックを入れることで、テーブルから一致するデータを抽出したいです。 ただし、「Yes」のみが有意なデータで、「No」は無視したいです。    チェックA チェックB チェックC 1    Yes    No     No 2    Yes    Yes    No 3    Yes    Yes    Yes (得たい結果) チェックAをYesで検索…1,2,3 チェックA+BをYesで検索…1,2 チェックA+B+CをYesで検索…3 単に検索フォームのチェックボックスの値を「抽出条件」に入れますと、「No」まで一致するように抽出するので意図と違います。 チェックを入れなかった項目については無視して、クエリを働かせられればよいのですが...。 どのようにクエリを記述したらよいのでしょうか。 フォームにあるチェックボックスからのデータの取得や抽出結果のフォームへの表示などはできています。 よろしくお願いいたします。

  • エクセルのチェックボックスについて

    エクセルでリストを作ってます。 チェックボックスを使い、YES NOを選ぶようにしています。 YES NO どちらかのチェックボックだけにチェックマークがつくようにしたいのですが、 どうすればいいのでしょうか プロパティのグループ名を設定すればよかったと思っていたのですが、 うまくいきません。 教えてください。

  • チェックボックスの合計値の取得

     ACCESSとVBを使ってプログラミングを行っているのですが、チェックボックスの合計値の取得をしたいのですが、同じ行のチェックボックスをクリックする度に碁合計値がズレてしまい、困っています。  どなたか解決方法をお教えください。 例:1行 □YES □NO   YES合計 XX個   2行 □YES □NO    NO合計 XX個       :   30行□YES □NO

  • ラジオボタンのチェック数に応じて、リンク先のページを切り替えたい

    「yes」か「no」だけを選択できるラジオボタンを10組準備し、 yesが選択された数だけをカウントし、 yesの数:0~2 → 01.htm yesの数:3~5 → 02.htm yesの数:6~8 → 03.htm yesの数:9以上 → 04.htm ラジオボタンをチェックし終えた後、 ボタンをクリックすると目的のページにジャンプする仕組みを造りたいのですが、 JavaScriptが全くわからないため、 本と格闘したものの作ることが出来ませんでした。 formの名前は「test」とし、 各ラジオボタンの名前は「q01」「q02」・・・と番号を振って管理しています。 HTMLのソースを記載します。 <form name="test"> <p> <input type="radio" name="q1" value="1">はい  <input type="radio" name="q1" value="0">いいえ </p> <p> <input type="radio" name="q2" value="1">はい  <input type="radio" name="q2" value="0">いいえ </p> <p> <input type="radio" name="q3" value="1">はい  <input type="radio" name="q3" value="0">いいえ </p> ~以下name="q10"まで続く <input type="button" value="採点"> </form> どなたか是非、お知恵をお貸しください。

  • こういうプログラミングを作りたいのですが・・・

    Q1あなたは毎日朝食を食べますか? ラジオボタンでYESとNO Q2家で食べるより外食でたべるほうが多い ラジオボタンでYESとNO Q3テレビや新聞を見ながら食べることが多い ラジオボタンでYESとNO Q4食卓で、マヨネーズ、ドレッシングやソース類をたっぷりかける ラジオボタンでYESとNO Q5塩辛いものや味付けの濃いものを好んで食べる 送信ボタンを作り、YESが3つ以上なら「あなたの健康状態はいいです」、3つ以下なら「あなたの健康状態は悪いです」というようなプログラミングを作りたいのですが、どう作ればいいかすごく困っています。 このようなプログラミングを作るにはどうしたらいいですか? すごく困っています。協力お願いします。

  • yes no で、50質問してyesの数をカウントする

    お知恵をお借りいたしますm(__)m FLASH8で制作しています。 質問を一つずつ表示して、Yes No でカウントしていって 50問、終わった時にYes の数に応じて表示を変えたいのですが いい方法が思いつきません。 カウントする方法が思いつかないので、分岐して行こう思って Yesでnextframe Noでnextscene でsceneを沢山作ろうとしていたのですが、 作業が膨大すぎてあきらめました。 何かヒントでも頂けるとありがたいです。。 宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • アクセスでチェックボックスのデータをYesとNoに切り分けて印刷する方法を教えてください。

    Access2003を使用しています。 チェックボックス(Yes/No型)のデータをYesとNoに切り分けて印刷する方法を教えてください。 フォーム上の「チェックがついているものを印刷」「チェックがついていないものを印刷」というコマンドボタンをクリックすれば、印刷プレビューの画面にジャンプするようにしたいです。 ご教示くださいますようお願いいたします。