前提・実現したいこと
ラジオボタンが複数あるフォームで、
未回答がある場合はバリテーションアラート、全て回答している場合はアンカーリンクに飛ばしたいのですが、
うまくいきません
発生している問題・エラーメッセージ
設問に全て回答していてもアラートが出てしまいます。
該当のソースコード
<script type="text/javascript"> function myCheck(){ var flag = false; if (!( flag)) { alert("全てのアンケートに回答してください。"); } else { window.location='#complite'; } } </script> <form id="form" method="post" target="hidden_iframe" name="form1"> <section id="question1"> <div> <input type="radio" name="flag1" id="q1_01" value="はい" required> <label for="q1_01">はい</label> </div> <div> <input type="radio" name="flag1" id="q1_02" value="いいえ"> <label for="q1_02">いいえ</label> </div> </section> <section id="question2"> <div> <input type="radio" name="flag2" id="q2_01" value="はい" required> <label for="q2_01">はい</label> </div> <div> <input type="radio" name="flag2" id="q2_02" value="いいえ"> <label for="q2_02">いいえ</label> </div> <div> <input type="radio" name="flag2" id="q2_03" value="どちらとも言えない"> <label for="q2_03">どちらとも言えない</label> </div> </section> <section id="question3"> <div> <input type="radio" name="flag3" id="q3_01" value="はい" required> <label for="q3_01">はい</label> </div> <div> <input type="radio" name="flag3" id="q3_02" value="いいえ"> <label for="q3_02">いいえ</label> </div> </section> <section id="question4" class="rel-box"> <div> <input type="radio" name="flag4" id="q4_01" value="全メニュー糖質15g以下" required> <label for="q4_01">ダイエットパーソナルジムのトレーナーと<br> 管理栄養士がダイエットのために開発し、<br> 全メニュー糖質15g以下に抑えていること。</label> </div> <div> <input type="radio" name="flag4" id="q4_02" value="専門家の全面協力"> <label for="q4_02">専門家の全面協力</label> </div> <div> <input type="radio" name="flag4" id="q4_03" value="50種類以上のメニュー"> <label for="q4_03">50種類以上のメニュー</label> </div> <div id="close"> <input type="radio" name="flag4" id="q4_04" value="全額返金保証がある"> <label for="q4_04">全額返金保証がある</label> </div> <div> <input type="radio" name="flag4" id="q4_05" value="レンジで温めるだけで食べられる"> <label for="q4_05">レンジで温めるだけで食べられる</label> </div> <div> <input type="radio" name="flag4" id="q4_06" value="変更や解約が簡単"> <label for="q4_06">変更や解約が簡単</label> </div> </section> <button type="submit" name="" value="Submit" onclick="myCheck();">回答する</button> </form> <div id="complite"> ありがとうございました </div>
試したこと
form に onsubmit="submitted=true;" を追加して、無理矢理アンカーリンクに飛ばすことはできたのですが、エラーメッセージはどうしても一度出てしまいます。
<script type="text/javascript">var submitted=false;</script> <iframe name="hidden_iframe" id="hidden_iframe" style="display:none;" onload="if(submitted){window.location='#complite'}"></iframe> <form id="form" method="post" target="hidden_iframe" onsubmit="submitted=true;" name="form1">
各ラジオボタンのチェックフラグも追加してみましたが、やはりうまくいかずのため、チェック自体が動いていないように思います。
<script type="text/javascript"> function myCheck(){ var flag = false; var check1 = document.form1.flag1.checked; var check2 = document.form1.flag2.checked; var check3 = document.form1.flag3.checked; var check4 = document.form1.flag4.checked; if (!( flag)) { if (!( check1 || check2 || check3 || check4)) { alert("全てのアンケートに回答してください。"); } } else { window.location='#complite'; } } </script>
お心あたりのある方がいらっしゃいましたらご教授いただけましたら幸いですm(__)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/14 11:02
2021/12/14 11:15