KH-WEBLOG TOP > WEBメモ > JavaScript > 規約を下までスクロールしないとチェックできないチェックボックスの実装:jQuery

規約を下までスクロールしないとチェックできないチェックボックスの実装:jQuery

規約を下までスクロールしないとチェックできないチェックボックスを実装する必要がありましたのでメモ。

今回はさらにチェックボックスをチェックしないと送信ボタンが押せないような仕様をjQueryで実装します。

コーディング・WordPress化作業を代行します

HTMLの記述

<div class="kiyaku">

<p>ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</p>

<p>ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</p>

</div>
<div class="kiyakubtn" id="kiyakudoui"><label><input type="checkbox" name="checkbox-kiyaku" value="上記内容を全て確認しました" disabled="">上記内容を全て確認しました</label></div>

<input class="form-submit" type="submit" value="送信">

jQueryの記述

jQueryは以下のように記述します。

//規約を一番下までスクロールするとチェックできる、そしてチェックするとボタンが押せる
$(window).on('load', function() {
  //disabledを設定しておく
  $('#kiyakudoui [type="checkbox"], .form-submit').prop('disabled', true);
  
  //一番下までスクロールするとチェック可能
  var scrollend = false;
  
  $('.kiyaku').on('scroll touchmove', function(event){
  var $this = $(this);
  if (
    scrollend == false
    && $this[0].scrollTop + $this[0].clientHeight >= $this[0].scrollHeight - 5
  ) {
    $('#kiyakudoui [type="checkbox"]').prop('disabled', false);
    scrollend = true;
  }
  });

  //disabledのイベント解除設定
  var practicableEvent = function(self, target){
    target.prop('disabled', false);
    setTimeout(function(){
      self.prop('disabled', true);
    }, 0);
  }

  //checkboxの#check2をチェックするとボタンが押せる
  $('#kiyakudoui [type="checkbox"]').on({
    "click touchstart":function(){
      practicableEvent($(this), $(".form-submit"));
    },
    "change":function(){
      practicableEvent($(this), $(".form-submit"));
    }
  }); 
});
 
コーディング・WordPress化作業を代行します

JavaScriptのおすすめ参考書

楽天ブックス
¥2,838 (2025/01/18 12:12時点 | 楽天市場調べ)

TAGS

.htaccess ActionScript All in one seo pack Contact Form 7 CSS CSS3 EC-CUBE Flash HTML HTML5 JavaScript jQuery LightBox PHP RSS SEO WordPress アイキャッチ画像 アクセス解析 カスタムフィールド カテゴリー カラーミーショップ カート コメント ショートコード テンプレートタグ ドロップダウンメニュー パーマリンク フォーム フルスクリーン ブログカード プラグイン ページテンプレート ページナビ ページ分割 マウスイベント リダイレクト リンク リンクカード レンタルサーバー ロールオーバー 携帯サイト 条件分岐 正規表現 関連記事