【问题标题】:How to set asp.net 's label 's text using javascript and get setted value on server side如何使用 javascript 设置 asp.net 的标签文本并在服务器端获取设置值
【发布时间】:2014-04-20 17:23:30
【问题描述】:

我有两个关于 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>

当我测试结果时,我发现 label1 的文本在 textbox1 按键时确实发生了变化,但奇怪的是 label1 的文本总是缺少一个与 textbox1 的字符,也就是说,如果我在 textbox1 中键入“abcd” , label1 只显示“ab”。

另一个问题是关于按钮的,当我在 .cs 文件中编写这段代码时:

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

并在“return”处添加断点,我发现无论我在 textbox1 中输入什么,变量 s1 始终是“Label1”

我认为这两个问题可能很容易遇到一个,但我无法解决它,感谢您的帮助。

【问题讨论】:

  • 你不能;浏览器不发送它。

标签: c# javascript asp.net


【解决方案1】:

您可以将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;
    }

【讨论】:

    猜你喜欢
    • 2014-02-13
    • 2012-09-30
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    相关资源
    最近更新 更多