2013-04-10 33 views
1

請幫助我,如果用戶在文本框內按下ENTER鍵,我試圖單擊一個隱藏按鈕。它工作正常,只有一個文本框,但如果我添加另一個,Java腳本不起作用。如果我添加第二個文本框,Javascript無法正常工作

TextBox 。 -------------------------------------------------- ----------------------------------------

<pre> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
     <title></title> 
    </head> 
    <body> 

     <form id="form1" runat="server"> 
      <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
        <asp:Button ID="Button1" runat="server" Text="Button" 
       onclick="Button1_Click1" style="visibility: hidden; display: none;" /> 

    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
    <script type="text/javascript"> 

     var myInput = document.getElementById("TextBox1"); 
     if (myInput.addEventListener) { 
      myInput.addEventListener('keydown', this.keyHandler, false); 
     } else if (myInput.attachEvent) { 
      myInput.attachEvent('onkeydown', this.keyHandler); /* damn IE hack */ 
     } 

     function keyHandler(e) { 
      var EnterKEY = 13; 
      if (e.keyCode == EnterKEY) { 

       if (e.preventDefault) { 

        document.getElementByID("Button1").click(); 
        e.preventDefault(); 
       } 
       return false; 
      } 
     } 
    </script> 

     &nbsp; 
      <br /> 
      <asp:Label ID="Label1" runat="server" Visible="False"></asp:Label> 
     </form> 
    </body> 
</pre> 
    ------------------------------------------------------------------------------ 

    CODE BEHIND 
      protected void Page_Load(object sender, EventArgs e) 
      { 

      } 

      protected void Button1_Click1(object sender, EventArgs e) 
      { 
        TextBox2.Text = "It Works"; 

      } 
     } 
+0

感謝您的快速響應,即時通訊試圖「點擊」按鈕「,如果用戶按Enter鍵,在後面的Button1代碼中,我爲TextBox2設置一個新值。 – user2268066 2013-04-10 22:11:51

回答

2

試着包裝你的JavaScript代碼document.onload功能

window.document.onload = function(e){ 
var myInput = document.getElementById("TextBox1"); 
     if (myInput.addEventListener) { 
      myInput.addEventListener('keydown', this.keyHandler, false); 
     } else if (myInput.attachEvent) { 
      myInput.attachEvent('onkeydown', this.keyHandler); /* damn IE hack */ 
     } 

//adding the second textbox 
myInput = document.getElementById("TextBox2"); 
      if (myInput.addEventListener) { 
       myInput.addEventListener('keydown', this.keyHandler, false); 
      } else if (myInput.attachEvent) { 
       myInput.attachEvent('onkeydown', this.keyHandler); /* damn IE hack */ 
      } 

     function keyHandler(e) { 
      var EnterKEY = 13; 
      if (e.keyCode == EnterKEY) { 

       if (e.preventDefault) { 

        document.getElementByID("Button1").click(); 
        e.preventDefault(); 
       } 
       return false; 
      } 
     } 
} 

所以一旦DOM樹滿載

+0

嗨pollirrata!我包裝了Java腳本代碼,但它仍然不工作:(:(順便說一句,謝謝你的幫助! – user2268066 2013-04-10 22:25:56

+0

我在答案中跳過了,但你需要將偵聽器添加到兩個文本框..我會編輯以顯示 – pollirrata 2013-04-10 22:31:37

0

執行腳本看你的代碼裏面,你只有你keyhandler(e)功能綁定到元素TextBox1但不是在TextBox2 。嘗試爲您的TextBox2創建一個新的綁定代碼。

var myInput2 = document.getElementById("TextBox2"); 
if (myInput2.addEventListener) { 
    myInput2.addEventListener('keydown', this.keyHandler, false); 
} else if (myInput.attachEvent) { 
    myInput2.attachEvent('onkeydown', this.keyHandler); /* IE hack */ 
} 
相關問題