• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:回答群の中から、規定数チェックしてもらいたい)

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

このQ&Aのポイント
  • 回答群の中から、規定数のチェックをもらう方法を探しています。
  • YESとNOのチェックを3つずつ取得する方法を考えています。
  • YESならYES、NOならNOでチェック数を制限し、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