2012-02-20 81 views
0

我在更新面板中有兩個文本框Text1和Text2。該代碼是在這裏:asp.net中的文本更改事件

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:UpdatePanel ID="Panle" > 
     <ContentTemplate> 
     <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" OnTextChanged="TextBox1_TextChanged"></asp:TextBox> 
     <asp:TextBox ID="TextBox2" runat="server" AutoPostBack="True"></asp:TextBox> 
     </ContentTemplate> 
     </asp:UpdatePanel> 

,我已經寫了textchanged事件文本1的驗證碼

Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) 
     TextBox2.Text = TextBox1.Text 
    End Sub 

現在的問題是,當我在文本1輸入文字,然後按回車鍵然後text2的文本等於text1的文本,但是我想在按下text1中的輸入之前執行此操作。我的意思是,當我在text1中鍵入時,那麼text2的文本應該等於text2。

+0

查找到'knockout.js'因爲它擅長這樣的事情。 – 2012-02-20 14:10:35

+0

ontextchanged只有在離開該字段後纔會觸發,無論是輸入還是單擊頁面上的其他位置。你最好使用javascript(jquery)來處理這個問題。 – peroija 2012-02-20 14:18:59

回答

2

如果你要處理的keydown事件,你需要的javascript:

<asp:TextBox ID="TextBox1" onkeydown="document.getElementById('TextBox2').value=this.value" runat="server" AutoPostBack="false"></asp:TextBox> 
+0

是的,這是一件好事 – 2012-02-21 04:14:59

3

您可以使用jQuery做你想做的。

$('#<%=TextBox1.ClientID %>').keyup(function(event) { 
    var value = $(this).val(); 
    $('#<%=TextBox2.ClientID %>').text(value); 
}); 

既然你處理在客戶端上的問題,你不需要設置AutoPostBack爲True了。

0

.aspx頁面中

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
    <script type="text/javascript"> 
    function chngtxtbxval() 
    { 
     var t1=document.getElementById("TextBox1").value; 
     var t2=document.getElementById("TextBox2"); 
     t2.value=t1; 

    } 
    </script> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox> 
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
    </div> 
    </form> 
    </body> 
    </html> 

代碼隱藏頁

protected void Page_Load(object sender, EventArgs e) 
    { 
    TextBox1.Attributes.Add("onkeyup", "chngtxtbxval();"); 
    }