入力中のテキストボックスの背景色を変える

記事内に広告が含まれています。

Javascriptでブラウザー上で入力中のエリアをわかりやすくするためにフォーカスのあるテキストボックスの背景色を変えてみます。

HTMLで入力中の背景色を変える

よくあるパターンで入力中のエリアをわかりやすくするためにフォーカスのあるテキストボックスの背景色を変えてみます。

背景色を変えるには「style」の「backgroundColor」を操作する

背景色を変えるにはその部品の「style」にある「backgroundColor」をJavascriptで書き変えます。

objct名.style.backgroundColor = '表示したい背景色' ;

実際に変更する際の処理は

<SCRIPT language="JavaScript">
    //入力中のテキストボックスの背景色を設定
    function editColor( item_name )
    {
        var item =document.getElementsByName( item_name ) ;
        item[ 0 ].style.backgroundColor = '#FFFF66' ;
    }
</SCRIPT>

のように「backgroundColor」に変更したい色を設定します。

色を元に戻すためにもう一つ関数を用意します。

<SCRIPT language="JavaScript">
    //通常のテキストボックスの背景色を設定
    function defaultColor( item_name )
    {
        var item = document.getElementsByName( item_name ) ;
        item[ 0 ].style.backgroundColor = '#FFFFFF' ;
    }
</SCRIPT>

入力テキストボックスでフォーカスの有無を取得

入力テキストボックス側では「onFocusイベント」と「onBlurイベント」を使って背景色を操作します。

<INPUT type="text" name="textbox1" onFocus="editColor(this.name)" onBlur="defaultColor(this.name)">

実際にHTMLを作成して実行

実際にHTMLを作成して入力中のテキストボックスの背景色を変更します。

<HTML>
    <HEAD>
        <SCRIPT language="JavaScript">
            //入力中のテキストボックスの背景色を設定
            function editColor( item_name )
            {
                var item = document.getElementsByName( item_name ) ;
                item[ 0 ].style.backgroundColor = '##FFFF66' ;
            }

            //通常のテキストボックスの背景色を設定
            function defaultColor( item_name )
            {
                var item = document.getElementsByName( item_name ) ;
                item[ 0 ].style.backgroundColor = '#FFFFFF' ;
            }
        </SCRIPT>
    </HEAD>
    <BODY>
        <FORM name="mainForm">
            <INPUT type="text" name="textbox1" onFocus="editColor(this.name)" onBlur="defaultColor(this.name)">
            <BR>
            <INPUT type="text" name="textbox2" onFocus="editColor(this.name)" onBlur="defaultColor(this.name)">
       </FORM>
    </BODY>
</HTML>

もっとシンプルにすると

editColor()関数とdefaultColor()にして

<SCRIPT language="JavaScript">
    //通常のテキストボックスの背景色を設定
    function setInputBackGroundColor( item_name, flg )
    {
        var item = document.getElementsByName( item_name ) ;
        if( flg == 'on'){
            item[ 0 ].style.backgroundColor = '#FFFF66' ;
        }
        else{
            item[ 0 ].style.backgroundColor = '#FFFFFF' ;
        }
    }
</SCRIPT>

にして呼び出す側で

<INPUT type="text" name="textbox1" onFocus="setInputBackGroundColor(this.name,'on')" onBlur="setInputBackGroundColor(this.name,'off')">

とするのも良いでしょう。

スポンサーリンク
スポンサーリンク
HTML
スポンサーリンク
ソフトウェア開発日記
タイトルとURLをコピーしました