【jQuery】チェックを入れると送信ボタンが有効化する方法

jQuery


こんにちは!フォトグラファー&Web制作のじゅんぺい(@junpei_sugiyama)です!

今回は、

お問い合わせフォームで「同意する」にチェックを入れたら送信ボタンを有効にしたいけどどうしたらいいんだろう?

 

 

といった方に対する記事となります。

お問い合わせフォームに送信ボタンはあるけど、内容確認にチェックを入れないと送信ボタンが押せないようにしたい場合ですね。

今回はjQueryを使って解説していきたいと思います。


HTMLでチェックボックスと送信ボタンを作成

まずはHTMLから書いていきます。

<!-- チェックボタン -->
<label>
  <input id="check" type="checkbox" />
  <span>送信内容を確認しました。</span>
</label>
<!-- 送信ボタン -->
<input
  id="button"
  class="button"
  disabled="disabled"
  type="submit"
  name="submit"
  value="送信"
/>

チェックボタンと送信ボタンのHTMLを書きました。

 

CSSで送信ボタンのデザインをカスタマイズ

次はCSSです。

.button {
  background-color: #c1c1c1;
  border-radius: 5px;
  color: #fff;
  display: block;
  font-size: 16px;
  font-weight: bold;
  margin: 25px;
  padding: 20px 60px;
}

ここでボタンのデザインをカスタマイズしています。

注意点としては、チェックボックスにチェックを入れたらボタンの色が変わるようにするので、ここではチェックを入れる前の色を background-color で設定しています。

 


jQueryで送信ボタンの有効化と無効化の切り替えを設定

最後にjQueryです。

$("#check").change(function () {
  // チェックが入っていたら有効化
  if ($(this).is(":checked")) {
    // ボタンを有効化
    $("#button").prop("disabled", false);
    // 有効化したらボタンの色を変える
    $("#button").css({ "background-color": "#fb8a00" });
  } else {
    // ボタンを無効化
    $("#button").prop("disabled", true);
    // 無効化したらボタンの色を戻す
    $("#button").css({ "background-color": "#c1c1c1" });
  }
});

今回はチェックボックスにチェックが入ると有効化してボタンの色を変えましたが、フォントサイズを変えたりすることも出来ます。

それでは実際のボタンを見てみましょう(スマホで見る場合はResultをタップして下さい)

See the Pen
vYNzZyB
by junpei (@junpei-sugiyama)
on CodePen.

 

無効化と有効化でクリックすると、色が変わっただけではないことが分かると思います。

 

jQueryを使わずJavaScriptで実装

最後にjQueryを使わずにJavaScriptで実装してみたいと思います。

See the Pen
チェックを入れると送信ボタンが有効化(javascript)
by junpei (@junpei-sugiyama)
on CodePen.

これも基本的な考え方はjQueryの時と同じです。

以上です。