【发布时间】:2011-11-09 04:08:26
【问题描述】:
我在 DOM 加载时设置控件的值。我在 aspx 页面上有这个超级简单的代码:
<script type="text/javascript">
$(document).ready(function () {
$('#<%=textBox2.ClientID %>').val($('#<%=textBox1.ClientID %>').val());
$('#<%=lblVal.ClientID %>').html($('#<%=textBox1.ClientID %>').val());
});
</script>
<asp:TextBox runat="server" ID="textBox1" Text="Test data" />
<asp:TextBox runat="server" ID="textBox2" />
<asp:Label runat="server" ID="lblVal" Text="Old Data" />
<asp:Button runat="server" Text="Click Me" onclick="Unnamed1_Click" />
在我的按钮单击事件处理程序中,我有以下代码:
protected void Unnamed1_Click(object sender, EventArgs e)
{
Debug.Write(textBox2.Text);
Debug.Write(lblVal.Text);
}
令我震惊的事情 lblVal 具有它的旧值。在 javascript 中设置值实际上对标签没有任何影响,而 textbox2 的数据反映在服务器上。文本框和标签的预期行为是什么?这让我有点惊讶,因为我以前从未遇到过这个东西。
【问题讨论】:
-
不,他们应该保留自己的价值;我用 JS 更改了文本框和隐藏字段的值,然后它回传到服务器 OK....
-
@Brian:我不是在谈论隐藏字段。您可以更改标签的值并尝试一下。