トップ 言語 JavaScript 入門編 イベントとイベントハンドラ 各種イベント onblurイベント

JavaScriptのonblurイベント―テキストフィールド0埋め補完の例など

onblurイベントはフォーカスが外れたときのイベントです。テキストフィールド0埋め補完の例など。JavaScriptのonblurイベントについてまとめています。

▲記事トップへ

目次

この記事の目次です。

1. onblurとは
2. onblurイベントの解説
3. JavaScriptでonblurイベントを使用したサンプルコードの一覧
4. onblurが動かない場合の参考

更新履歴

1. onblurとは

onblurとは、フォーカスがフォームやウィンドウから離れたときのイベントを取得するイベントハンドラです。

読み方

onblurの読み方は「オンブラー(オンブラァー)」です。

onblurは「on」と「blur」がくっついた単語です。 「blur」の発音は「 blə'ːr 」ですので「オンブラー(オンブラァー)」という読み方になりますね。

2. onblurイベントの解説

onblurイベントはフォーカスが外れたときに発生するイベントです。

フォーカス

htmlのinputタグのtype属性がtextのフォームなどでマウスカーソルが点滅していたり、type属性がradioのフォームやcheckboxのフォームがチェックされたり、 ウィンドウがアクティブになっているなどの状態が、フォーカスがある状態になります。

onblurイベントでの処理

フォームを移動したり、フォーカスがあるウィンドウとは別ウィンドウをクリックすることなどで、 フォーカスが移動したときをイベントとして取得し、設定した処理を実行します。

3. JavaScriptでonblurイベントを使用したサンプルコードの一覧

以下ではJavaScriptでonblurイベントを使用するサンプルプログラムを見ていきます。

以下はページ内の各サンプルへのリンクです。

onblurイベントを使用したテキストフィールド0埋め補完の例

JavaScriptでonblurイベントを使用したテキストフィールド0埋め補完の例を以下に示します。

サンプルソース

inputタグのonblur属性でonblurイベント発生時の処理にfillZere関数を登録します。

fillZere関数では、テキストフィールドへの入力値が8ケタに満たない場合、 テキストフィールドからフォーカスが外れたタイミングで先頭にゼロを追加する例を示します。

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<input type="text" id="code" onblur="fillZere(this)">
<script type="text/javascript">
function fillZere(element) {
	var value = element.value;
	while (value.length < 8) {
		value = '0' + value;
	}
	element.value = value;
}
</script>
</body>
</html>

表示方法と表示結果

htmlファイルに保存して、ChromeやFirefoxなど、ブラウザで開けば表示できます。 表示した結果は次のようになります。

入力フォームに例えば「1」と入力します。

JavaScriptのonblurイベントを使用したテキストフィールド0埋め補完の例―補完前

するとフォーカスが外れたときにonblurイベントが発生し、テキストフィールドへの入力値が8ケタに満たないので、「00000001」のようにテキストフィールド0埋めに補完されます。

JavaScriptのonblurイベントを使用したテキストフィールド0埋め補完の例―補完後

サンプルプログラムの一覧へ

onblurイベントを使用した未入力時に入力を促すメッセージ表示の例

今度はonblurイベントを使用してテキストフィールドが未入力の場合に入力を促すメッセージを表示する例を見ていきます。

サンプルソース

inputタグのonblur属性でonblurイベント発生時の処理にshowSupportMessage関数を登録します。

showSupportMessage関数では、テキストフィールドへの入力が無い場合にidがaのタグのテキストに「入力は必須です。」と書き込みます。 逆に入力がある場合はidがaのタグのテキストをクリアします。

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<input type="text" id="code" onblur="showSupportMessage(this)">
<p id="a"></p>
<script type="text/javascript">
function showSupportMessage(element) {
    if (!element.value) {
        document.getElementById('a').innerHTML='入力は必須です。';
    } else {
        document.getElementById('a').innerHTML='';
    }
}
</script>
</body>
</html>

表示方法と表示結果

htmlファイルに保存して、ChromeやFirefoxなど、ブラウザで開けば表示できます。 表示した結果は次のようになります。

ページ表示直後はメッセージは表示されません。

onblurイベントを使用した未入力時に入力を促すメッセージ表示の例―ページロード直後

テキストフィールドが未入力の状態でフォーカスを移すとonblurイベントが発生し、showSupportMessage関数の処理が行われます。 未入力のため、showSupportMessage関数では「入力は必須です。」とidがaのタグのテキストに書き込みます。

onblurイベントを使用した未入力時に入力を促すメッセージ表示の例―未入力でフォーカスを移した後

テキストフィールドが入力状態でフォーカスを移す場合もonblurイベントが発生し、showSupportMessage関数の処理が行われる動きは同じで。 未入力の場合は、showSupportMessage関数ではとidがaのタグのテキストをクリアします。

onblurイベントを使用した未入力時に入力を促すメッセージ表示の例―入力してフォーカスを移した後

サンプルプログラムの一覧へ

onblurイベントを使用してテキストエリアからHTMLタグを取り除く例

今度はonblurイベントを使用してテキストエリアからHTMLタグを取り除く例を見ていきます。

サンプルソース

textareaタグのonblur属性でonblurイベント発生時の処理にtrimHtmlTag関数を登録します。

trimHtmlTag関数では、テキストエリアに入力された文章の中にHTMLタグが含まれていたらそのHTMLタグを削除します。

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<textarea type="textarea" id="code" onblur="trimHtmlTag(this)" cols="40" rows="5"></textarea>
<script type="text/javascript">
function trimHtmlTag(element) {
	var value = element.value;
	value = value.replace(/<("[^"]*"|'[^']*'|[^'">])*>/g,'');
	element.value = value;
}
</script>
</body>
</html>

表示方法と表示結果

htmlファイルに保存して、ChromeやFirefoxなど、ブラウザで開けば表示できます。 表示した結果は次のようになります。

例えば、scriptタグでアラートを表示させるようなHTMLの改ざんを行うような入力があったとします。

onblurイベントを使用してテキストエリアからHTMLタグを取り除く例―ページロード直後

テキストフィールドが未入力の状態でフォーカスを移すとonblurイベントが発生し、trimHtmlTag関数の処理が行われます。 trimHtmlTagによりHTMLタグが削除され、無害化されます。

onblurイベントを使用してテキストエリアからHTMLタグを取り除く例―入力してフォーカスを移した後

サンプルプログラムの一覧へ

4. onblurが動かない場合の参考

onblurを使用したコードが動かない場合についてです。参考になればと思います。

前の処理のエラー

前の処理でエラーになっているとそこで停止して、onblurの処理が動かないことがあります。 alert()を追加するなどしてどこから動かなくなっているか確認してみましょう。

IEで動いていたのにFirefoxで動かない

ブラウザによって仕様が異なる場合がありますがonblurではないと思います。 onblurの前の処理でブラウザ依存のコードが存在するかもしれません。

もっと知識を広げるための参考

更新履歴

更新履歴になります。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Burp /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

18.118.120.109

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク