首页 > 解决方案 > 无法在 jQuery 中获取元素

问题描述

我知道这很简单,但我没有做对。有人会帮助我吗。我需要获取隐藏字段值,但看起来我没有获取该元素。该函数已运行,因为警报框显示“运行”。if 语句中的警报未执行。我搜索了网站检查元素是否存在于 jQuery [重复]中。我仍然没有发现我的代码有什么问题。有人会帮助我吗。谢谢。

有我的隐藏字段:

<asp:HiddenField ID="hdID" runat="server" value="hd"/>

jQuery函数:

function showMe() 
{
   alert('run');
   if ($('#hdID').length){
      alert( $('#hdID').val()); 
   } else {
      alert('no element'); 
   }
}

标签: jqueryasp.net

解决方案


在 ASP.Net 中,runat="server"未指定的元素ClientIdMode="static"的 ID 将被重写†</sup>。因此,我希望您的 HiddenField没有ID hdID

如果这不是重复元素(即它不在 a RepeaterGridView等中),那么您可以简单地添加ClientIdMode="static"以防止发生此 ID 重写:

<asp:HiddenField ID="hdID" ClientIdMode="Static"  runat="server"  value="hd"/>

如果这一个重复的元素,那么你不能使用这种技术,因为它会导致重复的 ID。在这种情况下,您可能需要提供周围的意图来找出最佳方法。它可以ClientIdMode="Predictable"用于附加索引,或者只是使用类选择器。


† 也可以在页面或配置级别覆盖默认值。


推荐阅读