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)

в той же форме, на мой взгляд.