【问题标题】:Pass jQuery Variable into ASP.NET Code Behind Using HiddenField使用 HiddenField 将 jQuery 变量传递到 ASP.NET 代码中
【发布时间】:2013-06-03 03:58:43
【问题描述】:

我在使用隐藏字段和 jQuery 将 div 的物理大小(高度和宽度)传递到 ASP.NET 变量时遇到问题。

这是我的代码,但它不起作用:

$("<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").attr("height"));

有什么想法吗?

非常感谢。

【问题讨论】:

  • 缺少 ID 选择器 (#)

标签: c# jquery asp.net


【解决方案1】:

您忘记了隐藏字段名称前的#:

$("#<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").attr("height"));

【讨论】:

    【解决方案2】:

    代码应包含id选择器#

    $("#<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").attr("height"));
    

    如果您在页面加载时执行此操作,请务必将您的代码包装在 ready 函数中。

    $(document).ready(function(){
        $("#<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").height());
    });
    

    还要注意,不是通过attr 检索高度属性,而是使用.height() 更容易检索。

    【讨论】:

    • 我已经进行了更改,谢谢,但是它仍然无法正常工作 - 我必须在其他地方出错。我正在像这样在后面的代码中收集值:“string advertHeight = hfAdvertHeight.Value;”,在 Page_Load() 中。这是错的吗?
    • 尝试将您的代码包装在$(document).ready(function(){/*code here*/}); 中。这将确保元素已加载到 DOM 上。
    • 代码已经在那个函数中了。设置隐藏文本框值一定有问题,因为我在VS中调试时,值字段为空:(
    【解决方案3】:

    在您的 html 中添加 "ClientIDMode="Static"" 作为隐藏控件属性,然后尝试: $("#hfAdvertHeight").val($("#Advert_Container").attr("height"));

    【讨论】:

      【解决方案4】:

      如果你的 ASP.NET 隐藏字段 ID 是“HiddenMyField”,那么使用这个:

      <asp:HiddenField ID="HiddenMyField" runat="server" />
      
      var input = $("[id$='HiddenMyField']").val();
      
      $.ajax {
               url:.....,
               data: JSON.stringify(input),
               ...
      }
      

      这对我来说很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-23
        • 1970-01-01
        相关资源
        最近更新 更多