#javascript #jquery #asp.net #datepicker
#javascript #jquery #asp.net #datepicker
Вопрос:
Я пытаюсь использовать jquery datepicker, предоставленный в jquery-ui-1.10.4. Но проблема в том, что он отлично работает для тега ввода html без серверной части.
Как только я использовал его на стороне сервера, функция jquery не выполняется
Кодируется как
<script type="text/javascript">
$(function () {
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true
});
});
и рабочая часть
<input type="text" id="datepicker"/>//Without runat attribute
Но когда добавляется атрибут runat, он перестает работать
<input type="text" id="datepicker" runat="server"/>//Without runat attribute
Кто-нибудь помогает!!!
Комментарии:
1. это на главной странице?
2. какой формат даты вы отправляете в datepicker?
3. @RashminJaviya это внутри главной страницы
4. @HassaanKhan пожалуйста, посмотрите мой ответ ниже
Ответ №1:
Это может быть связано с главной страницей. когда вы используете главную страницу, она добавляет префикс «CPH» к каждому элементу управления на дочерних страницах. попробуйте получить доступ с помощью класса.
Javascript
<input type="text" id="datepicker" runat="server" class="datepicker"/>
HTML
$(function () {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true
});
});
Если вы не хотите использовать class, то второй способ — использовать $("#CPH_datepicker")
в качестве селектора
Комментарии:
1. Проблема в том, что runat=»server» генерировал и идентификатор, поэтому я решил ее, используя свойство ClientIDMode=»Static»
2. Нет, использование «CPH_DatePicker» в качестве селектора jQuery — плохая идея. Он не является строго типизированным и основан на предположении о том, как генерируется идентификатор (который может измениться). Вместо этого предпочтительным решением является установка для ClientIDMode значения Static или использование встроенных выражений для извлечения идентификатора.
Ответ №2:
Элементы управления на стороне сервера автоматически генерируют идентификатор на основе иерархии вложенности в пределах основных страниц.
Итак, это вариант:
<input type="text" id="datepicker" runat="server" ClientIdMode="Static" />
Или это:
$(function () {
$("#<%= datepicker.ClientId %>").datepicker({
changeMonth: true,
changeYear: true
});
});
Второй вариант предпочтительнее, потому что он строго типизирован. Хотя с первым решением вы также можете изменить ClientIDMode на уровнях page, web.config или machine.config.