Jquery Hidden Field

asp.net, hidden-field, jquery

Solution

Because jQuery knows nothing about `asp:HiddenField`. It looks in the HTML structure where you have `<input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" ...`. So there's no input with `ID= HiddenFieldServerDateTime`. There are a few ways to overcome this:

Use a css selector:

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

with the following selector: `var serverDateTime = $(".SomeStyle").val();`

`CssClass` is not an available class on the `HiddenField` class (and it doesn't have an `Attributes` collection, so you can't add it manually).

Use `ClientID` property:

var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();

Wrap the hidden field in something you can select:

<div class="date-time-wrap">
  <asp:HiddenField ID="..." runat="server" />
</div>
var serverDateTime = $('.date-time-wrap input[type=hidden]').val();

Problem

Why can't I get the value of this hidden field? I have a control... ``` <asp:HiddenField ID="HiddenFieldServerDateTime" runat="server" /> ``` Which renders as... ``` <input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" value="08/01/2010 10:54:11" ``` Which I'm trying to get the value of using... ``` var serverDateTime = $("#HiddenFieldServerDateTime").attr('value'); ``` So what's wrong? I prefer this ``` var dateTime = $("[id$=_HiddenFieldServerDateTime]").val(); ```

Original source