簡體   English   中英

如何使用javascript設置asp.net的label文本並在服務器端獲取設置值

[英]How to set asp.net 's label 's text using javascript and get setted value on server side

我有兩個關於javascript和asp.net的問題,我想要的結果是:當文本框按鍵時,使標簽相同的更改,這是我的工作:

在asp.net頁面中:

<form id="form1" runat="server">
<div>

    <asp:TextBox ID="TextBox1" runat="server" onkeypress="okpress();"></asp:TextBox>
    <br />
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="test1" />
</div>
</form>

這是我的腳本:

<script type="text/javascript">
    function okpress() {
        //alert('Your keypress on TextBox1.');
        var v1 = document.getElementById("Label1");
        v1.innerHTML = document.getElementById("TextBox1").value;
    }
</script>

當我測試結果時,我發現在textbox1按鍵時label1的文本確實發生了變化,但是奇怪的是label1的文本總是與textbox1缺少一個字符,也就是說,如果我在textbox1中僅輸入“ abcd”,label1顯示“ ab”。

當我在.cs文件中編寫此代碼時,另一個問題是關於按鈕的:

    protected void test1(object sender, EventArgs e)
    {
        string s1 = Label1.Text;
        return;
    }

並在“ return”處添加斷點,無論我在textbox1中鍵入什么內容,我都發現變量s1始終為“ Label1”

我認為這兩個問題可能很容易遇到,但是我無法解決,謝謝您的幫助。

您可以更改Keypress事件Keyup事件,並與相同的腳本嘗試..

<asp:TextBox ID="TextBox1" runat="server" onKeyup="okpress();"></asp:TextBox>

對於第二個問題,如果我們在客戶端設置標簽的innerHtml ,則很難在服務器端訪問它。

在第二種情況下,您可以使用此方法。

聲明一個Hidden input Control ..

 <input type="Hidden" id="Hidden1" value="" clientidnode="Static" runat="server">

之后,您可以將標簽的innerHtml設置為此控件。

document.getElementid('Hidden1').value=v1.innerHTML;

之后,您可以訪問服務器端的“隱藏”控件,如下所示。

protected void test1(object sender, EventArgs e)
    {
        string s1 = Hidden1.value;
        return;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM