如何在代码隐藏中从<input hidden =“”/>获取文本?

时间:2013-04-22 07:43:21

标签: javascript asp.net textbox hidden-field

我今天的第二个问题。我真的卡住了。 好的,我在aspx文件中有两个字段:

<input type="text" id="tbName" runat="server"/> 
<input type="hidden" id="hfName" runat="server"/>

我们的想法是使用文本框“tbName”中的文本作为我的存储过程的参数。 我决定使用javascript将其文本添加到隐藏字段“hfName”

document.getElementById("<%= hfName.ClientID %>").value = document.getElementById("<%= tbName.ClientID %>").value;
alert(document.getElementById("<%= hfName.ClientID %>").value);

效果很好,隐藏字段从文本框中获取文本,函数会对其进行提醒。我使用隐藏字段,因为这是我在回发期间保存文本的唯一方法。

在代码隐藏中,我尝试将隐藏值从hfName.Value返回到文本框,但它返回空行:

tbName.Value = hfName.Value;

那么如何不丢失文本框文本并将其用作参数?也许有一种更简单的方法? 我不知道jquery。

2 个答案:

答案 0 :(得分:0)

在JavaScript部分中,您将tbName中的值写入hfName,后面的代码从hfName到tbName。

hfName.Value = tbName.Value;

使用jQuery,您可以解决客户端部分,如

$("#<%= hfName.ClientID %>").val($("#<%= tbName.ClientID %>").val());
alert($("#<%= hfName.ClientID %>").val());

答案 1 :(得分:0)

  

在主Page_Load过程中,我输入了tbName.Value = hfName.Value;   这是我尝试使用隐藏字段值的唯一地方   hfName.Value。 tbName后面没有被修改,应该显示文本   来自隐藏字段hfName。它没有。

当页面加载时没有设置为文本框文本,因此tbName和hfName值为空。

您可以通过将默认值设置为隐藏和文本字段

来对此进行测试
<input type="text" id="tbName" runat="server" value ="txtVal"/> 
<input type="hidden" id="hfName" runat="server" value ="hftVal"/>

现在在页面加载时,您可以获得两个控件的非空值

protected void Page_Load(object sender, EventArgs e)
{
    var txtVal = tbName.Value;
    var hfVal = hfName.Value;
}