0

EnterイベントとLeaveイベントで背景色を変更する2つのJavaScript関数があります。

    function ColoronEnter()
      { 
        var txt1 = document.getElementById("<%=txtID1.ClientID%>");
       txt1.style.backgroundColor = "red";
      }

      function ColoronLeave()
      { 
        var txt2 = document.getElementById("<%=txtID1.ClientID%>");
       txt2.style.backgroundColor = "";
      }

私はそれらを次のように呼んでいます

<asp:TextBox ID="txtID1" runat="server" MaxLength="20" AutoCompleteType="FirstName"  onfocus="ColoronEnter()" onblur="ColoronLeave()" ></asp:TextBox>

それはうまく機能しています。しかし、1つのjavascript関数をすべてのテキストボックスに適用したいと思います。私は次のようなものを試しました

        function onEnter(_input)
       {
        var input = _input;
        document.getElementById(input).style.backgroundColor ="yellow"; 
       }  
       function onLeave(_input)
       {
        var input = _input;
        document.getElementById(input).style.backgroundColor =""; 
       }  

それらを次のように呼ぼうとしています

 <asp:TextBox ID="txtID2" runat="server" onfocus="onEnter(txtID2)" onblur="onLeave(txtID2)"></asp:TextBox>
 <asp:TextBox ID="txtID3" runat="server" onfocus="onEnter(txtID3)" onblur="onLeave(txtID3)"></asp:TextBox>

次のようにエラーをスローしています

Microsoft JScript runtime error: Unable to get value of the property 'style': object is null or undefined.

すべてのテキストボックスに対して1つの関数を呼び出すにはどうすればよいですか。少し早いですがお礼を。

4

1 に答える 1

4

のように使用

  <asp:TextBox ID="txtID2" runat="server" onfocus="onEnter(this)" onblur="onLeave(this)"></asp:TextBox>
  <asp:TextBox ID="txtID3" runat="server" onfocus="onEnter(this)" onblur="onLeave(this)"></asp:TextBox>


    function onEnter(_input)
   {
     _input.style.backgroundColor ="yellow"; 
   }  
   function onLeave(_input)
   {
     _input.style.backgroundColor =""; 
   } 

jQueryの使用に制限がない場合は、jQueryホバーイベントを使用してこれを処理します。

于 2013-03-27T06:35:36.993 に答える