JQuery UI datepicker не работает при привязке к классу

У меня есть этот код:

<html>
<head>
  <link type="text/css" href="css/blitzer/jquery-ui-1.7.2.custom.css" rel="stylesheet" />   
  <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
  <script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script>
  <script type="text/javascript">
$(function() {
  $('.hasDatepicker').datepicker();
});
</script>
</head>
<body>
<p>date: <input type="text" name="data" class="hasDatepicker" /></p>
<input type="submit" value="send" />
</div>
</body>
</html>

Когда я нажимаю поле ввода, ничего не происходит. Датапикер инициализируется, хотя, когда я проверяю DOM в Firebug, я добавляю id="dp1260260566059" к элементу <input>.

После изменения html и js для использования атрибута id вместо class, поэтому, имея это в моем коде:

$(function() {
  $('#hasDatepicker').datepicker();
});

и

<p>date: <input type="text" name="data" id="hasDatepicker" /></p>

Все работает нормально.

Невозможно datepicker из JQuery UI работать для всех элементов какого-либо класса?

Ответы

Ответ 1

Проверьте, работает ли функция datepicker, если вы измените имя класса полей ввода с 'hasDatePicker' на что-то другое. Причина в том, что при добавлении datepicker в поле ввода с помощью кода ниже:

$(function() {
  $('#date').datepicker();
});

он добавляет имя класса "hasDatePicker" в поле ввода. (который используется с помощью u)

Ответ 2

Не используйте hasDatepicker в качестве имени класса выбора даты. Используйте другое имя, например date_picker.

JQuery добавляет класс hasDatepicker к элементу, который вызывается datepicker(). Если элемент уже имеет класс hasDatepicker, функция datepicker() ничего не делает. Поэтому просто используйте другое имя класса.