###前提・実現したいこと
以下URLを参考にさせていただき、インプット要素「text」「select」「radio」「checkbox」の残り項目数を表示させる機能を実装するテストを行いました。
・https://teratail.com/questions/63818
・https://jsfiddle.net/6j0cb1ow/1/
Chrome、Firefoxでは問題なく機能するのですが、IE11では全く機能しませんでした。
お手数おかけしますが、どなたかご教示いただきたく存じます。
実現したいこと
・必須項目の残り項目数を表示させたい
・チェックボックス、ラジオボタンは各項目ひとつでもチェックを入れたら残りの項目数を「1」減らす
・IE11でも動作させたい
###発生している問題・エラーメッセージ
Chromeでは問題なく、残りの項目数を表示させることができますが、IE11では機能しません。
###該当のソースコード
HTML
1<form action=""> 2<!--残りの項目数を.nemberのところに表示--> 3<div class="number">.number</div> 4 <table> 5 <tr> 6 <th>ラジオボタン1</th> 7 <td> 8 <label><input type="radio" name="radio1">1-1</label> 9 <label><input type="radio" name="radio1">1-2</label> 10 <label><input type="radio" name="radio1">1-3</label> 11 </td> 12 </tr> 13 <tr> 14 <th>ラジオボタン2</th> 15 <td> 16 <label><input type="radio" name="radio2">2-1</label> 17 <label><input type="radio" name="radio2">2-2</label> 18 <label><input type="radio" name="radio2">2-3</label> 19 </td> 20 </tr> 21 <tr> 22 <th>テキスト1</th> 23 <td><input name="text1" type="text" size="20" value="" /></td> 24 </tr> 25 26 <!--セレクト--> 27 <tr> 28 <th>セレクト1</th> 29 <td><select name="select1"> 30 <option value="" selected="selected">-- 選択してください --</option> 31 <option value="北海道">北海道</option> 32 <option value="青森県">青森県</option> 33 <option value="岩手県">岩手県</option> 34 <option value="宮城県">宮城県</option> 35 <option value="秋田県">秋田県</option> 36 <option value="山形県">山形県</option> 37 <option value="福島県">福島県</option> 38 <option value="茨城県">茨城県</option> 39 <option value="栃木県">栃木県</option> 40 <option value="群馬県">群馬県</option> 41 <option value="埼玉県">埼玉県</option> 42 <option value="千葉県">千葉県</option> 43 <option value="東京都">東京都</option> 44 <option value="神奈川県">神奈川県</option> 45 <option value="新潟県">新潟県</option> 46 <option value="富山県">富山県</option> 47 <option value="石川県">石川県</option> 48 <option value="福井県">福井県</option> 49 <option value="山梨県">山梨県</option> 50 <option value="長野県">長野県</option> 51 <option value="岐阜県">岐阜県</option> 52 <option value="静岡県">静岡県</option> 53 <option value="愛知県">愛知県</option> 54 <option value="三重県">三重県</option> 55 <option value="滋賀県">滋賀県</option> 56 <option value="京都府">京都府</option> 57 <option value="大阪府">大阪府</option> 58 <option value="兵庫県">兵庫県</option> 59 <option value="奈良県">奈良県</option> 60 <option value="和歌山県">和歌山県</option> 61 <option value="鳥取県">鳥取県</option> 62 <option value="島根県">島根県</option> 63 <option value="岡山県">岡山県</option> 64 <option value="広島県">広島県</option> 65 <option value="山口県">山口県</option> 66 <option value="徳島県">徳島県</option> 67 <option value="香川県">香川県</option> 68 <option value="愛媛県">愛媛県</option> 69 <option value="高知県">高知県</option> 70 <option value="福岡県">福岡県</option> 71 <option value="佐賀県">佐賀県</option> 72 <option value="長崎県">長崎県</option> 73 <option value="熊本県">熊本県</option> 74 <option value="大分県">大分県</option> 75 <option value="宮崎県">宮崎県</option> 76 <option value="鹿児島県">鹿児島県</option> 77 <option value="沖縄県">沖縄県</option> 78 </select></td> 79 </tr> 80 81 <!--チェックボックス--> 82 <tr> 83 <th>チェックボックス1</th> 84 <td> 85 <label><input type="checkbox" name="cb1" value="1">1-1</label> 86 <label><input type="checkbox" name="cb1" value="2">1-2</label> 87 <label><input type="checkbox" name="cb1" value="3">1-3</label> 88 </td> 89 </tr> 90 </table> 91</form>
JavaScript
1$( _=> { 2 $( 'form' ).each( ( i, element ) => { 3 const $_inputs = $( 'input, textarea, select', element ); 4 const $_input_textarea_select = $_inputs.not( '[type="radio"], [type="checkbox"]' ); 5 const radio_names = $.unique( $( '[type="radio"], [type="checkbox"]', element ).map( ( i, e ) => e.name ).get() ); 6 $_inputs.on( 'input change', _=> { 7 let len = $_input_textarea_select.length + radio_names.length; 8 let count = len; 9 $_input_textarea_select.each( ( i, ele ) => { 10 if ( $.trim( $( ele ).val() ) ) { count--; } 11 } ); 12 $.each( radio_names, ( i, v ) => { 13 if ( $_inputs.filter( '[name="' + v + '"]:checked' ).length ) { count--; } 14 } ); 15 $( '.number', element ).html( '残り:' + count + ' / ' + len ); 16 } ).change(); 17 } ); 18} );
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/27 01:48