HTMLでボタンを非活性にする方法。非表示との違いも解説!

2024.01.03
HTMLでボタンを非活性にする方法

Webサイトを作っている時「入力が終わるまではボタンを押さないでほしい」と思うことがあると思います。
そんな時はボタンを「非活性」にすることでボタンを押すことができない状態にするのが効果的です。
この記事では、ボタンを非活性にする方法と、非表示との違いについて解説します。

HTMLでボタンを非活性にする方法

ボタンは、HTMLだけで簡単に非活性にすることができます。
「button」タグや「input type=”button”」タグなど、ボタンをあらわすタグに「disabled」属性を設定すると非活性になります。
「disabled」属性は、追加しただけで有効となるので、「disabled=”false”」と設定したとしても非活性になりますので注意してください。

<button>押せるボタン</button>
<button disabled>押せないボタン</button>
HTMLでボタンを非活性にした画像

ボタンの活性非活性を切り替える方法

ボタンを非活性にするということは、当然活性にしたいタイミングがあるということです。
この「活性」「非活性」を切り替えたい場合、JavaScriptなど、プログラミング言語で変更する必要があります。

入力項目に文字が入力されたタイミングでボタンを活性化させ、文字が消されたタイミングでボタンを非活性化させるサンプルを紹介します。

HTML

<form action="#">
  ユーザー名:
  <input id="username" name="username">
  <br>
  <button id="sendbutton" disabled>送信</button>
</form>

Javascript

window.onload = function(){
  // テキストボックスのDOMを取得
  const username = document.getElementById("username");
  // 活性/非活性を切り替えるボタンのDOMを取得
  const button = document.getElementById("sendbutton");
  // 入力テキストのキーアップイベント
  username.addEventListener('keyup', function() {
    // テキストボックスに入力された値を取得
    const text = username.value;
    console.log(text);
    // テキストが入力されている場合
    if(text) {
      // ボタンのdisabled属性を取り除く
      button.disabled = null;
    } else {
      // ボタンにdisabledを設定する
      button.disabled = "disabled";
    }
  })
}
ユーザー名に文字を打ち込むアニメーション


本来、input要素の変更を検知するためには、「addEventListener(’change’, function(){〜})」を利用するのが一般的なのですが、changeに相当するイベントはテキストボックスからフォーカスが外れた時に初めて実行されます。
そのため、キーボード入力と連動して活性/非活性を切り替える場合は、キーボードの状態に応じたイベントを取得するkeyupを取得するのが一般的です。

「非表示」と「非活性」の使い分け

ところで、ボタンを押させないためには「ボタンを表示させない」という方法もあります。
Javascriptを用いて、ボタンの表示非表示を切り替えるサンプルを紹介します。

CSS

.hidden {
  display: none;
}

HTML

<form action="#">
  ユーザー名:
  <input id="username" name="username">
  <br>
  <button id="sendbutton" class="hidden">送信</button>
</form>

Javascript

window.onload = function(){
 
  // テキストボックスのDOMを取得
  const username = document.getElementById("username");
  // 活性/非活性を切り替えるボタンのDOMを取得
  const button = document.getElementById("sendbutton");
  
  username.addEventListener('keyup', function() {
    // テキストボックスに入力された値を取得
    const text = username.value;
    console.log(text);
    
    if(text) {
      // 入力文字があれば、display:noneを指定したクラスを取り除く
      button.className = null;
    } else {
      // 入力文字がなければ、display: noneを指定したクラスを設定する
      button.className = "hidden";
    }
  })
}
ユーザー名に文字を打ち込むアニメーション

ボタンを非表示にすると、使うことができない時はボタンが表示されないので、条件をクリアすると突然ボタンが出現することになります。
非活性と非表示、どちらがよりわかりやすいかは、状況によります。

非活性とした方が良い場面

必須項目の入力が終わったら押すことができる、というように「本人の操作によって使うことができるボタン」の場合は、非活性の方がわかりやすいです。

非表示とした方が良い場面

管理者だけができる操作のように「本人が操作しても権限が無いボタン」の場合は、非表示にしていた方が使いやすいです。

まとめ

ボタンを非活性にする方法や、非表示との違いを紹介しました。

  • ボタンは「disabled」属性を追加すると非活性になる
  • ボタンの活性、非活性を切り替えるには、Javascriptなどでプロパティを操作する必要がある
  • ボタンの操作を制限するには非表示にする方法もあり、使い分けが重要

画面に何か入力して操作するページを作成する時は、必ずボタンが必要になります。
状況に応じて、使いやすい方法を選んでください。


プログラミングやパソコンを使って働きたい!

そのように考え、成長しているIT業界への転職を考えている方も増えてきました。

『IT業界に興味はあるけど、よくわからない…』
『パソコンとかそもそも苦手なのに私なんかにできるのかな』
『エンジニアって聞くけど難しそう』

反対にこのような声も聞く事があります。

そう考えている方は、一度ぜひ転職に成功したエンジニアの方のインタビューをご覧ください!

\プログラミングを学んで/
人生を変えた3名

インタビュー記事一覧 >

\プログラミングスクールを比較/

DMM WEBCAMP

COACHTECH

RUNTEQ

DMM WEBCAMP COACHTECH RUNTEQ
目指せる姿 WEBエンジニアへの転職
フリーランスエンジニア WEBエンジニアへの転職
分割払い
補助金 ×
転職保証 × ×
受講期間 12週間〜 3ヶ月〜 5ヶ月〜
特徴 【IT業界の転職を一番に考えたい方向け】
大手DMMが運営のプログラミングスクール
転職成功率98.8%
豊富なキャンペーンや補助金制度あり
【フリーランスを目指したい方向け】
フリーランスのエンジニアを最短で目指す
エンジニアと共に実際の案件開発を担当
【とことん勉強してから転職したい方向け】
1,000時間(約9カ月)のカリキュラムでしっかり勉強
企業の求める即戦力のWEBエンジニアを目指す
料金 329,350円〜
※給付金適用後
42万9,000円~ 55万円

公式HP

公式HP

公式HP

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5