为什么我无法获得此隐藏字段的值(value)?

我有控制权...

<asp:HiddenField ID="HiddenFieldServerDateTime" runat="server" />

呈现为...
<input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" value="08/01/2010 10:54:11"

我正在尝试获得使用的值(value)...
var serverDateTime = $("#HiddenFieldServerDateTime").attr('value');

那怎么了

我更喜欢
var dateTime = $("[id$=_HiddenFieldServerDateTime]").val();

最佳答案

因为jQuery对asp:HiddenField一无所知。它在HTML结构中查找<input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" ...。因此,没有ID= HiddenFieldServerDateTime的输入。有几种方法可以解决此问题:

  • 使用CSS选择器:
    <asp:HiddenField ID="HiddenFieldServerDateTime"
                     runat="server"
                     CssClass="SomeStyle" />
    

    使用以下选择器:var serverDateTime = $(".SomeStyle").val();CssClass HiddenField 类中不是可用的类(并且它没有 Attributes 集合,因此您不能手动添加它)。
  • 使用ClientID属性:
    var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
    
  • 将隐藏字段包装为可以选择的内容:
    <div class="date-time-wrap">
      <asp:HiddenField ID="..." runat="server" />
    </div>
    
    var serverDateTime = $('.date-time-wrap input[type=hidden]').val();
    
  • 关于asp.net - jQuery隐藏字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2027062/

    10-11 00:58