Удостоверьтесь, что Ваш инициализатор называют после того, как DOM загружается:
$(document).ready(function() {
$("#basics").datepicker();
});
При помощи этого метода, Ваша связанная функция будет вызвана момент, DOM готов быть считанным и управляться, который является, когда 99,99% всего кода JavaScript должен работать.
Похоже на выполнение JavaScript, встроенного, поскольку страница загружается. В этом случае #basics
селектор не сможет определить местоположение входа с id="basics"
, поскольку он еще не был проанализирован и представлен в к телу документа.
Ваше решение может быть столь же простым как как перемещение script
элемент в Вашем коде к позиции после input
элемент.
Лучше все еще, подпишитесь на готовый документ, или документ загрузил событие, и выполните код jQuery в обработчике того события.
$(document).ready(function() {
$("#basics").datepicker();
});
существует много преимуществ для этого. Можно быть уверены, что весь DOM готов к употреблению, и нет никакой зависимости от порядка исходного кода, означающего Вас, мог переместить JavaScript во внешний файл в будущем для использования в своих интересах различных механизмов кэширования на клиентском.