Почему я не могу получить значение этого скрытого поля?
Я имею контроль...
<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"
Который я пытаюсь получить значение использования...
var serverDateTime = $("#HiddenFieldServerDateTime").attr('value');
Так что случилось?
Я предпочитаю это
var dateTime = $("[id$=_HiddenFieldServerDateTime]").val();
Потому что jQuery ничего не знает о asp:HiddenField
. Он выглядит в структуре HTML, где у вас есть . Поэтому нет ввода с идентификатором
ID=HiddenFieldServerDateTime
. Есть несколько способов преодолеть это:
Использовать селектор css:
со следующим селектором: var serverDateTime = $(".SomeStyle").val();
CssClass
не является доступным классом в классе HiddenField
(и он не имеет Attributes
collection, поэтому вы не можете добавить его вручную).
Используйте свойство ClientID
:
var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
Оберните скрытое поле чем-нибудь, что можно выбрать:
var serverDateTime = $('.date-time-wrap input[type=hidden]').val();
Добавьте атрибут класса ".myHiddenValue" к метке, затем используйте
var myVal = $(".myHiddenValue").val()
или так как это отобразится после загрузки документа, советую использовать этот
$(document).ready(function(){
var myVal = $("input[name='ctl00$cph_main$HiddenFieldServerDateTime']").val();
}
);
Note: also applies for the first example as well