【问题标题】:Not getting value of HTML input type in ASP.NET c# code-behind没有在 ASP.NET c# 代码隐藏中获取 HTML 输入类型的值
【发布时间】:2013-11-26 10:31:40
【问题描述】:

我在这里得到了在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);

没有打印任何内容。怎么会?

编辑 我通过将隐藏的输入字段更改为不可见的文本框,然后将“名称”属性放入标签中来做到这一点。

&lt;input type="text" id="lblCountry_val" name="lblCountry_val" runat="server" style="display:none" /&gt;

在后面的代码中:

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

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

【问题讨论】:

  • 您确定在BindUserInfo() 函数中填充了隐藏字段吗?写入隐藏字段后尝试发出警报并检查值是否存储在其中。
  • 我将 : alert(window.strcountry); 放在脚本标签内和 document.getElementById... 之前,它提供了价值。
  • window.strcountry 不应该有这个问题。由于您的隐藏字段是服务器端控件,因此在客户端浏览器上呈现时会修改其 ID。所以在 ID 上执行 document.getElementById... 是行不通的。您需要按照下面第一个答案所示的相同方式获取客户端 ID,并将值设置为window.strcountry。之后,做alert(document.getElementById('&lt;%=lblCountry_val.ClientID%&gt;').value),看看这个值是否已经实际存储在隐藏字段中。

标签: c# jquery html asp.net


【解决方案1】:

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

第二种方法 - 使用标签,将隐藏字段数据提交到相关的aspx页面。然后您可以使用Request.Form["lblCountry_val"]数组获取值。

【讨论】:

  • 能否提供第二种方法的代码?我没有正确理解它。
【解决方案2】:

你应该写

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

发生这种情况是因为在大多数情况下,控件的服务端 ID 与其客户端 ID 不同。取法如上。

【讨论】:

    【解决方案3】:

    试试这个...

    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;
    }
    

    【讨论】:

      【解决方案4】:

      这是一个在提交点击时设置隐藏字段的示例。

      `<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>`
      

      【讨论】:

        猜你喜欢
        • 2013-07-16
        • 2011-07-13
        • 1970-01-01
        • 2012-11-16
        • 1970-01-01
        • 2012-05-02
        • 2014-02-12
        • 2019-01-30
        • 1970-01-01
        相关资源
        最近更新 更多