【发布时间】:2013-06-03 03:58:43
【问题描述】:
我在使用隐藏字段和 jQuery 将 div 的物理大小(高度和宽度)传递到 ASP.NET 变量时遇到问题。
这是我的代码,但它不起作用:
$("<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").attr("height"));
有什么想法吗?
非常感谢。
【问题讨论】:
-
缺少 ID 选择器 (#)
我在使用隐藏字段和 jQuery 将 div 的物理大小(高度和宽度)传递到 ASP.NET 变量时遇到问题。
这是我的代码,但它不起作用:
$("<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").attr("height"));
有什么想法吗?
非常感谢。
【问题讨论】:
您忘记了隐藏字段名称前的#:
$("#<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").attr("height"));
【讨论】:
代码应包含id选择器#
$("#<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").attr("height"));
如果您在页面加载时执行此操作,请务必将您的代码包装在 ready 函数中。
$(document).ready(function(){
$("#<%=hfAdvertHeight.ClientID %>").val($("#Advert_Container").height());
});
还要注意,不是通过attr 检索高度属性,而是使用.height() 更容易检索。
【讨论】:
$(document).ready(function(){/*code here*/}); 中。这将确保元素已加载到 DOM 上。
在您的 html 中添加 "ClientIDMode="Static"" 作为隐藏控件属性,然后尝试: $("#hfAdvertHeight").val($("#Advert_Container").attr("height"));
【讨论】:
如果你的 ASP.NET 隐藏字段 ID 是“HiddenMyField”,那么使用这个:
<asp:HiddenField ID="HiddenMyField" runat="server" />
var input = $("[id$='HiddenMyField']").val();
$.ajax {
url:.....,
data: JSON.stringify(input),
...
}
这对我来说很好。
【讨论】: