Почему Jquery DatePicker не работает с asp.net текстовое поле

#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.