在ASP.NET c#代码隐藏中没有获得HTML输入类型的价值

时间:2013-11-26 10:31:41

标签: c# jquery html asp.net

我在这里获得了在c#中获取输入字段值的过程:

Get value from input html in codebehind c#

我的aspx页面中有一个隐藏的输入字段,如下所示:

<input type="hidden" id="lblCountry_val" runat="server" />

隐藏字段的值通过jquery放置:

<script type="text/javascript">
$(function () {
        BindUserInfo();
    })


function BindUserInfo()
{
 document.getElementById('lblCountry_val').value = window.strcountry;
 }
</script>
<script type="text/javascript" src="http://smart-ip.net/geoip-json?callback=GetUserInfo"></script>

但是当我试图通过以下代码获取代码中的Page_Load事件中的值时: Response.Write(lblCountry_val.Value);

什么都没有打印出来。怎么样?

修改 我通过将隐藏的输入字段更改为不可见的文本框,然后在标记中添加“name”属性来完成此操作。

<input type="text" id="lblCountry_val" name="lblCountry_val" runat="server" style="display:none" />

在后面的代码中:

var txt=Request.Form["lblCountry_val"];

虽然我不清楚它是如何完成的。

4 个答案:

答案 0 :(得分:1)

你应该写

document.getElementById('<%=lblCountry_val.ClientID%>')

这是因为在大多数情况下,控件的服务端ID与其clientId不同。采取它的方法是上述。

答案 1 :(得分:1)

第一种方法 - 在aspx中,当您使用Java脚本将值设置为html字段时,Field的值不会出现在文件后面的代码(aspx.cs)中。因此,您必须执行其他页面回发以将值设置为隐藏字段,然后您才能捕获文件后面的代码中的值。

第二种方法 - 使用标记,将隐藏的字段数据提交到相关的aspx页面。然后使用 Request.Form [“lblCountry_val”] 数组捕获值。

答案 2 :(得分:0)

试试这个......

JavaScript

<script>
    $(document).ready(function () {
        var test = "1";
        $("<%=hdn_audio_length.ClientID%>").val(test);
    });
</script>

Html 

<asp:HiddenField runat="server" ID="hdn_audio_length" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="button1" runat="server" Text="Click" OnClick="button1_Click" />

C#

protected void button1_Click(object sender, EventArgs e)
{
    TextBox1.Text = hdn_audio_length.Value;
}

答案 3 :(得分:0)

以下是在提交点击时设置隐藏字段的示例。

`<script>
    $(document).ready(function () {
        $("#submit").click(function () {
            $("#<%= ccnum.ClientID%>").val($("#cc-num").val());
            $("#<%= expdate.ClientID%>").val($("#cc-exp").val());
            $("#<%= cvc.ClientID%>").val($("#cc-cvc").val());
        });
    });
</script>`