ラジオボタン、チェックボックス、テキストエリアが混在し、且つ入力必須任意があるアンケートフォーム画面についてです。
buttonクリックしたときに、class="required"の未入力があるかどうかをチェックしたいです。
html
1<form name="form1" id="form1"> 2 <div class="radioBox required"> 3 <input type="radio" name="00" value="りんご">りんご<br /> 4 <input type="radio" name="00" value="バナナ">バナナ<br /> 5 <input type="radio" name="00" value="オレンジ">オレンジ<br /> 6 </div> 7 8 <div class="radioBox required"> 9 <input type="radio" name="01" value="りんご">りんご<br /> 10 <input type="radio" name="01" value="バナナ">バナナ<br /> 11 <input type="radio" name="01" value="オレンジ">オレンジ<br /> 12 </div> 13 14 <div class="radioBox required"> 15 <input type="radio" name="02" value="りんご">りんご<br /> 16 <input type="radio" name="02" value="バナナ">バナナ<br /> 17 <input type="radio" name="02" value="オレンジ">オレンジ<br /> 18 </div> 19 20 <div class="checkBox"> 21 <input type="checkbox" name="03" value="りんご">りんご<br /> 22 <input type="checkbox" name="03" value="バナナ">バナナ<br /> 23 <input type="checkbox" name="03" value="オレンジ">オレンジ<br /> 24 </div> 25 26 <div class="checkBox required"> 27 <input type="checkbox" name="04" value="りんご">りんご<br /> 28 <input type="checkbox" name="04" value="バナナ">バナナ<br /> 29 <input type="checkbox" name="04" value="オレンジ">オレンジ<br /> 30 </div> 31 32 <div class="checkBox required"> 33 <input type="checkbox" name="05" value="りんご">りんご<br /> 34 <input type="checkbox" name="05" value="バナナ">バナナ<br /> 35 <input type="checkbox" name="05" value="オレンジ">オレンジ<br /> 36 </div> 37 38 <div class="textarea required"><input type="text"></div> 39 40 <div class="textarea"><input type="text"></div> 41 42 <p class="alert"></p> 43 <input type="button" value="回答する"> 44</form>
試したこと
はじめはチェックボックスがなかったので、ラジオボタンはすべて必須のため、
ラジオボタンのアンケート数に対して、checkedの数を照らし合わせて判定していたのですが、
JavaScript
1$(function(){ 2 $('input:button').click(function(){ 3 var classCount = $('.radioBox').length; 4 var checkedCount = $('#form1 input:radio:checked').length; 5 if(classCount > checkedCount){ 6 $('.alert').text("すべて選択してください"); 7 return false; 8 9 }else{ 10 $("#surveyArea").replaceWith('<p id="surveyCompletion">回答ありがとうございました</p>'); 11 myData(); 12 } 13 }); 14}); 15function myData(){ 16 17 //送信のスクリプト 18 19}
複数選択可のチェックボックスも追加になったため、やり方を変えないといけないと思うのですが、
思いつきません。
フォームの仕様について
buttonクリック時に未入力があれば、アラートテキストを<p class="alert"></p>
に出します。
また、このHTMLアンケートは内容が変わることもあるそうで、
その都度jsを組み替えないでよいように、あらかじめラジオボタン、チェックボックス、テキストと構成が変更しても対応できるようにしないといけません。
すべてのclass="required"が選択or入力されたかチェックして、その数を照らし合わせるのかなと思ったのですが、それがわからず。
pureでもjQueryでもよいですので、
ご教授いただける方いましたらお願いします。
回答2件
あなたの回答
tips
プレビュー