javascript フォーカスが当たったことを検知する
- 2020.09.17
- javascript
- javascript

javascriptで、onfocusを使用して、フォーカスが当たったことを検知するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 84.0.4147.105
onfocus使い方
onfocusメソッドを使うと、フォーカスが当たったことを検知することが可能です。
1 2 3 4 5 6 7 |
// 対象の要素を取得 var element = document.getElementById("id名"); // フォーカスが当たれば実行される element.onfocus = function (e){ //処理を記述 }; |
サンプルコード
以下は、
「フォーカス移動」でランダムにフォーカスを移動させて
指定した要素にフォーカスがあたると、テキストを表示する
サンプルコードとなります。
※cssには「bootstrap material」を使用してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>mebeeサンプル</title> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons"> <link rel="stylesheet" href="https://unpkg.com/bootstrap-material-design@4.1.1/dist/css/bootstrap-material-design.min.css" integrity="sha384-wXznGJNEXNG1NFsbm0ugrLFMQPWswR3lds2VeinahP8N0zJw9VWSopbjv2x7WCvX" crossorigin="anonymous"> </head> <style> .main { margin: 0 auto; margin-top: 200px; display: flex; flex-direction: column; align-items: center; font-size: 25px; } </style> <script> function hoge() { // ランダムなidにフォーカスを移動させる var num = Math.floor(Math.random() * 3 + 1); document.getElementById("txt" + num).focus(); if(num !== 3){ document.getElementsByClassName("badge")[0].textContent = "テキストフォーム3以外にフォーカスがあたりました"; } }; window.onload = function () { // id txt3を取得 var element = document.getElementById("txt3"); // フォーカスが当たれば実行 element.onfocus = function (e) { document.getElementsByClassName("badge")[0].textContent = "テキストフォーム3にフォーカスがあたりました"; }; } </script> <body> <div class="main"> <h5 id="focus"><span class="badge badge-secondary">検知</span></h5> <form> <div class="form-group"> <label for="textform">テキストフォーム1</label> <input type="text" class="form-control" id="txt1"> <label for="textform">テキストフォーム2</label> <input type="text" class="form-control" id="txt2"> <label for="textform">テキストフォーム3</label> <input type="text" class="form-control" id="txt3"> </div> </form> <button type="button" class="btn btn-raised btn-info" onclick="hoge()">フォーカス移動</button> </div> </body> </html> |
フォーカスが当たったことを検知できていることが確認できます。

-
前の記事
OpenSUSE 15.1にnginxをインストールする手順 2020.09.17
-
次の記事
react製の静的サイトジェネレーター「Docusaurus」をインストールしてブログを作成する手順 2020.09.18
コメントを書く