我有两个关于 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”
我认为这两个问题可能很容易遇到一个,但我就是无法解决,感谢您的帮助。
最佳答案
您可以将 Keypress
事件更改为 Keyup
事件并尝试使用相同的脚本..
<asp:TextBox ID="TextBox1" runat="server" onKeyup="okpress();"></asp:TextBox>
对于第二个问题,如果我们在客户端设置标签的innerHtml
,那么在服务器端很难访问它..
在第二种情况下,您可以使用这种方法。
声明一个隐藏输入控件
..
<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;
}
关于c# - 如何使用 javascript 设置 asp.net 's label ' s 文本并在服务器端获取设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23185439/