Почему jqueryUI datepicker выдает ошибку?

Я пробую jqueryUI, но firebug ловит следующую ошибку в этом скрипте:

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

Ошибка firebug гласит:

$("#date").datepicker is not a function

В моем html идентификатор «даты» выглядит так:

<input type="text" name="date" id="date" >

NB: я использовал правильные сценарии JqueryUI css/js в разделе

Ничего не выполняется...


person Gath    schedule 03.04.2009    source источник


Ответы (6)


В документации jQuery говорится, что вы можете вызвать средство выбора даты с помощью этой команды:

$("#datepicker").datepicker();

Если вы нажмете кнопку «просмотреть исходный код» на странице документации, вы увидите, что они включили его в функцию ready:

$(document).ready(function(){
    $("#datepicker").datepicker();
  });

EDIT: Это должно работать с INPUT (спасибо Steerpike за указание на это). Это тест, который я написал, и он работает, попробуйте сами:

<html>
<head>
  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.datepicker.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
    $("#datepicker").datepicker();
  });
  </script>
</head>
<body>
  <input type="text" id="datepicker" value="this is a test">   
</body>
</html>
person RuudKok    schedule 03.04.2009
comment
Вам нужно прикрепить средство выбора даты к DIV или SPAN. Пожалуйста, попробуйте еще раз. - person RuudKok; 03.04.2009
comment
Извините, я ненавижу минусовать, но просто неправильно, что вы не можете прикрепить datepicker() к полю ввода. То, что демо этого не показывает, не означает, что вы не можете этого сделать. (Это сделало бы средство выбора даты довольно бесполезным, если бы вы не могли прикрепить его к полям ввода) - person Steerpike; 03.04.2009
comment
@Steerpike: ты прав. В документации говорится, что его нужно прикрепить к DIV или SPAN, но после тестирования с помощью INPUT я получил элемент управления календарем после выбора элемента управления INPUT. - person RuudKok; 03.04.2009
comment
Голосование за резервную копию для исправлений, а также за использование внешней загрузки ui/jquery для тестирования, что обычно решает 90% вопросов jquery, найденных на SO :) - person Steerpike; 03.04.2009
comment
Теперь он работает, не включает правильные заголовки (ui.datepicker.js) - person Gath; 03.04.2009

Вы почти наверняка неправильно загружаете плагин datepicker. Предоставьте нам код, который вы используете для включения файлов javascript.

Если у вас по-прежнему возникают проблемы, загрузите jquery и пользовательский интерфейс из API Google.

<link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("jquery", "1.3.2");
    google.load("jqueryui", "1.7.0");
</script>
person Steerpike    schedule 03.04.2009
comment
+1 ваш комментарий привел меня прямо к решению этого вопроса ;-) - person RuudKok; 03.04.2009

для меня это был просто случай убедиться, что jquery ui был последним в списке всех включенных js.

person Darren    schedule 17.12.2010

 $(document).ready(function(){
  // Your code here
 });

убедитесь, что ваша функция находится внутри основной функции .ready.

person Rick J    schedule 03.04.2009

Это старый пост, но я попал сюда, когда искал решение, поэтому люди до сих пор его читают ;) У меня была или, скорее, была такая же проблема. В моем случае оказалось, что я неправильно прикреплял js в html (обратите внимание, как я заканчивал тег script)

НЕПРАВИЛЬНО: <script type="text/javascript" src="/fbo/js/jquery-ui-1.8.14.custom.min.js"/>

ХОРОШО: <script type="text/javascript" src="/fbo/js/jquery-ui-1.8.14.custom.min.js"></script>

Когда я делал это неправильно, у меня была такая же ошибка.

person emstol    schedule 14.07.2011

Вероятно, вы загружаете прототип.js или другую библиотеку, которая использует $ в качестве псевдонима.

Попробуйте заменить $ на jQuery.

person kgiannakakis    schedule 03.04.2009