前提・実現したいこと
ここのサイト
https://design-tera.com/blog/archives/2993/
を参考にして、お問い合わせフォームの必須項目の残数を表示したいと考えていました。
class="rq"のついた項目を必須項目として、必須項目の数をカウントできるのが便利だなと思っていました。
(フォームには必須ではないtextareaの入力もあるため、必須と任意の住み分けをclass="rq"の有無で設定できる点が好都合でした。)
フォームの設問上、type="checkbox"にて複数選択可能な「お問い合わせ種類」というのを設問で用意したいのですが、
この項目を必須にした場合に、残数を表示させるにはどうしたら良いでしょうか?
発生している問題
冒頭の参考サイトのように、<input type="checkbox">にclass="rq"を設定しても、意図したようには実装できなかったのですが、なにか良い方法はありますでしょうか?
該当のソースコード
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>無題/title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> jQuery(function($){ $(function(){ var items = $("form").find('.rq').length; $(".items").html(items); var i = 0; $(".number").html(items - i); $("form").find('.rq').change(function() { calc(); }); $("form").find('.rq').keyup(function() { calc(); }); var calc = function() { i = 0; $("form").find('.rq').each(function() { if($(this).val() !== "") { i++; } }); $(".number").html(items - i); }; }); }); </script> </head> <body> <div class="form_inner"> <form method="post" action=""> <div class="remaining"><p>残りの入力項目<br><span class="number"></span> / <span class="items"></span></p></div> <div class="form_test"> <table> <tr> <th> お問い合わせ種類<span class="required">必須</span> </th> <td> <label><input name="お問い合わせ種類" value="見積り請求" type="checkbox" class="rq">見積り請求</label><br> <label><input name="お問い合わせ種類" value="カタログ請求" type="checkbox" class="rq">カタログ請求</label><br> <label><input name="お問い合わせ種類" value="製品・サービスに関するお問い合せ" type="checkbox" class="rq">製品・サービスに関するお問い合せ</label> </td> </tr> <tr> <th> 氏名<span class="required">必須</span> </th> <td> <input name="氏名" value="" type="text" class="rq"> </td> </tr> <tr> <th> <h2>お問い合わせ内容</h2> </th> <td> <textarea type="text" name="" /></textarea> </td> </tr> </table> </div> </form> </div> </body> </html>

回答2件
あなたの回答
tips
プレビュー