経緯
サイト内に設置しているメールフォームAとメールフォームB
(共にWordpressのプラグインMW WP Formで実装)のページに
規約文章をすべてスクロールしないと規約同意するのチェックボックスを
クリックできないようにするスクリプトをjQueryで実装しています。
Google Chrome、Firefox、IE11などでは動作するのですが、
Microsoft Edgeのみ動作が安定しません。
発生している問題
Microsoft Edgeにて
メールフォームAにアクセス後にメールフォームBにアクセスすると
メールフォームBでのみjQueryが動作しません。
逆にメールフォームBにアクセス後にメールフォームAにアクセスすると
メールフォームAでのみjQueryが動作しません。
F12でコンソールを開いてみても特にエラーメッセージもなく、
どうしてこのような現象が起こっているのかが分からない状況です。
該当のソースコード
HTML
1<!-- MW WP Formにて出力 --> 2<div id="termsWrapper"> 3 <div id="terms"> 4 <!-- 各規約 --> 5 </div> 6</div> 7<label for="termscheck-1"> 8 <input type="checkbox" name="termscheck[data][]" value="ご利用規約に同意する" id="termscheck-1" /> 9 <span class="mwform-checkbox-field-text">ご利用規約に同意する</span> 10</label>
jQuery
1//(変更前) 2<script src='https://data-archives.jichodo.co.jp/mng/wp-includes/js/jquery/jquery.js?ver=1.12.4-wp'></script> 3<script> 4$(function(){ 5 document.getElementById('termscheck-1').disabled = true; 6 $('label[for="termscheck-1"]').attr('disabled',true); 7}); 8$("#termsWrapper").scroll(function(){ 9 var setTop = $(this).scrollTop(); 10 var setHeight =$("#terms").height() - 270; //#termsWrapperの高さ指定にあわせ調整 11 if ((setHeight - setTop) < 15) { 12 document.getElementById('termscheck-1').disabled = false; 13 $('label[for="termscheck-1"]').attr('disabled',false); 14 } 15}); 16</script>
jQuery
1//(修正後ソース※未解決) 2<script src='https://data-archives.jichodo.co.jp/mng/wp-includes/js/jquery/jquery.js?ver=1.12.4-wp'></script> 3<script> 4$(function(){ 5 $('#termscheck-1').prop('disabled',true); 6 $('label[for="termscheck-1"]').prop('disabled',true); 7 8 $("#termsWrapper").scroll(function(){ 9 var setTop = $(this).scrollTop(); 10 var setHeight =$("#terms").height() - 270; //#termsWrapperの高さ指定にあわせ調整 11 if ((setHeight - setTop) < 15) { 12 $('#termscheck-1').prop('disabled',false); 13 $('label[for="termscheck-1"]').prop('disabled',false); 14 } 15 }); 16}); 17</script>
メールフォームAでもメールフォームBでも
問題なくチェックボックスを制御できれば
別の記述方法でも問題ございません。
もしお心当たりがあればご指摘いただけますと幸いです。
回答3件
あなたの回答
tips
プレビュー