在ASP.NET c#代码隐藏中未获取HTML输入类型的值

在ASP.NET c#代码隐藏中未获取HTML输入类型的值,c#,jquery,html,asp.net,C#,Jquery,Html,Asp.net,我在这里得到了c#中输入字段值的获取过程: 我的aspx页面中有一个隐藏的输入字段,如下所示: 其中隐藏字段的值通过jquery输入: <script type="text/javascript"> $(function () { BindUserInfo(); }) function BindUserInfo() { document.getElementById('lblCountry_val').value = window.strcountr

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

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

其中隐藏字段的值通过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>
虽然我不清楚是怎么做的。

你应该写

document.getElementById('<%=lblCountry_val.ClientID%>')
document.getElementById(“”)
这是因为在大多数情况下,控件的服务端Id与其clientId不同。采取的方法如上所述

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

第二种方法- 使用标记,将隐藏字段数据提交到相关的aspx页面。然后您可以使用请求捕获该值。表单[“lblCountry\u val”]数组。

试试这个

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;
}
JavaScript
$(文档).ready(函数(){
var test=“1”;
$(“”).val(测试);
});
Html
C#
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
TextBox1.Text=hdn\u audio\u length.Value;
}

下面是一个在提交时设置隐藏字段的示例

`<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>`
`
$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
$(“#”)val($(“#cc num”).val());
$(“#”)val($(“#cc exp”).val());
$(“#”)val($(“#cc cvc”).val());
});
});
`

您确定在
BindUserInfo()
函数中填充了隐藏字段吗?尝试在写入隐藏字段后发出警报,并检查值是否存储在其中在脚本标记内部,在
文档.getElementById…
之前,它提供了值。问题不应该出现在
窗口.strcountry
上。由于隐藏字段是服务器端控件,因此在客户端浏览器上呈现时将修改其ID。因此,按原样对ID执行
document.getElementById…
将不起作用。您需要以与下面第一个答案相同的方式获取客户端ID,并将值设置为
window.strcountry
。然后,执行
alert(document.getElementById(“”).value)
查看该值是否实际存储在隐藏字段中。请为第二种方法提供一段代码好吗?我没弄明白。
`<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>`