javascript フォーカスを外す
- 作成日 2020.11.27
- 更新日 2022.07.25
- javascript
- javascript
javascriptで、blurメソッドを使用して、現在あたっているフォーカスを外すサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.134
blurメソッド使い方
「blur」メソッドを使うと、現在、フォーカスがあたっている要素からフォーカスを外すが可能です。
アクティブな要素.blur();
blurメソッド使い方
<input type="text" id="txt1">
<input type="text" id="txt2">
<button id="btn">button</button>
<script>
// ボタンクリックでフォーカスを外す。document.getElementById('btn')は省略して「id」名のみを使用
btn.onclick = function () {
// 現在のフォーカスを取得
let obj = document.activeElement
if (obj) {
obj.blur();
}
}
</script>
実行結果
フォーカスが外れたイベント
また「blue」は、フォーカスが外れた際のイベントも取得することができます。
<input type="text" id="txt1">
<input type="text" id="txt2">
<script>
txt1.onblur = function(){
txt1.value = "フォーカスが外れました"
};
</script>
実行結果
「addEventListener」でも同じです。
txt1.addEventListener('blur',function(){ // 第一引数にblurを指定
txt1.value = "フォーカスが外れました"
});
サンプルコード
以下は、ランダムにフォーカスを移動させて、「フォーカス外す」ボタンをクリックすしてフォーカスを外すサンプルコードとなります。
※cssには「bootstrap material」を使用してます。
<!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 foo() {
// フォーカスを取得
let obj = document.activeElement;
// フォーカスを外す
if (obj) {
obj.blur();
}
};
function hoge() {
// ランダムなidにフォーカスを移動させる
document.getElementById("txt" + Math.floor(Math.random() * 3 + 1)).focus();
};
</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-success" onclick="hoge()">フォーカス移動</button>
<button type="button" class="btn btn-raised btn-danger" onclick="foo()">フォーカス外す</button>
</div>
</body>
</html>
フォーカスが外れていることが確認できます。
-
前の記事
dockerを使って「Gitbucket」を構築する 2020.11.27
-
次の記事
C# delegateの簡単な使い方 2020.11.27
コメントを書く