JqueryUI Datepicker: Uncaught TypeError: Не удается прочитать свойства 'settings' undefined?
Я разрабатываю проект asp.net MVC4, где я использую множество JqueryUI datepicker.
Для одного из моего выбора даты, когда я попытался щелкнуть на изображении datepicker, я получаю некоторую ошибку, например,
Uncaught TypeError: Cannot read property 'settings' of undefined jquery-ui-1.10.3.min.js:9
Html
<div>
<input type="text" id="tsDte" style="font-size: 14px;width: 50%" >
<img src="~/Images/dayPicker.png" onclick="tsDatePickerClick()" style="vertical-align:bottom"/>
</div>
Javascript
var currentDate = new Date();
$("#tsDte").datepicker({
dateFormat: 'yy-mm-dd',
maxDate: 0,
changeYear: true
}).attr('readonly', 'readonly');
$("#tsDte").datepicker("setDate", currentDate);
function tsDatePickerClick() {
$("#tsDte").datepicker('show');
}
Здесь у меня есть текстовое поле и изображение datepicker. Когда я нажимаю на datepicker, вы увидите всплывающее окно datepicker.
Я пошел аналогичным образом в другой datepicker, и они работают нормально. У меня есть только проблема с этим выбором даты.
Любая помощь приветствуется.
Ответы
Ответ 1
Я думаю, что ваш датпикер создан неправильно, поэтому, когда вы вызываете show
, он ожидает объект settings
.
Вероятно, вы не создали его внутри $(document).ready
, вы должны иметь:
$(document).ready(function(){ //Add this line (and it closing line)
var currentDate = new Date();
$("#tsDte").datepicker({
dateFormat: 'yy-mm-dd',
maxDate: 0,
changeYear: true
}).attr('readonly', 'readonly');
$("#tsDte").datepicker("setDate", currentDate);
});
Надеюсь это поможет. ура
Ответ 2
Эта же ошибка будет показана, если вы попытаетесь открыть датупиксера в поле ввода, которому назначен класс "hasDatepicker". Просто удалите этот класс в html.
До:
<input type="text" value="01/01/2014" class="hasDatepicker">
После:
<input type="text" value="01/01/2014">
Ответ 3
Вы jquery-ui-1.10.3.min.js
библиотеку jquery-ui-1.10.3.min.js
.
Ваша проблема вызвана дублированием ваших основных сценариев jQuery UI. (Проверьте, включены ли вы какие-либо другие librady, такие как jquery-ui-1.10.3.drag-drop.min.js
.
Загрузите их только один раз, и ваша проблема исчезнет.
Ответ 4
В моем случае это было вызвано тем, что у меня был интервал с date
id, а входной - тот же идентификатор. Предоставление ввода другого идентификатора решало проблему.
Ответ 5
Имел ту же проблему, потому что у меня были оба: @Html.TextBoxFor(m => m.StartDate, "{0: dd/MM/yyyy}", новый {@class= "DatePicker"}) и @Html.HiddenFor(m => m.StartDate)
в той же форме, на мой взгляд.