webentwicklung-frage-antwort-db.com.de

JqueryUI Datepicker: Nicht abgerufener TypeError: Kann die 'Einstellungen' von undefined nicht lesen?

Ich entwickle ein asp.net MVC4-Projekt, in dem ich viele JqueryUI-Datepicker verwende.

Für einen meiner Date-Picker, als ich versuchte, auf das Datepicker-Bild zu klicken, erhalte ich eine Fehlermeldung wie:

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');
}

Hier habe ich ein Textfeld und ein Datepicker-Bild. Wenn ich auf Datepicker-Bild klicke, wird datepicker eingeblendet.

ich habe die gleiche Art und Weise in anderen Datepicker gefolgt und sie funktionieren gut. Ich habe nur Probleme mit diesem Datumsauswahl.

Jede Hilfe wird geschätzt.

12
Cyber

Ich glaube, Ihr Dateipicker wurde nicht korrekt erstellt. Wenn Sie show aufrufen, erwartet Sie ein settings-Objekt.

Wahrscheinlich haben Sie es nicht in $(document).ready erstellt. Sie sollten Folgendes haben:

$(document).ready(function(){      //Add this line (and it's closing line)
    var currentDate = new Date();

    $("#tsDte").datepicker({
        dateFormat: 'yy-mm-dd',
        maxDate: 0,
        changeYear: true 
    }).attr('readonly', 'readonly');
    $("#tsDte").datepicker("setDate", currentDate);
});

Hoffe das hilft. Prost

Der gleiche Fehler wird angezeigt, wenn Sie versuchen, ein Datepicker in einem Eingabefeld zu öffnen, dem die Klasse "hasDatepicker" zugewiesen ist. Entfernen Sie diese Klasse einfach in der HTML-Datei.

Vor:

<input type="text" value="01/01/2014" class="hasDatepicker">

Nach dem:

<input type="text" value="01/01/2014">
23
ChillerPerser

Sie enthalten die jquery-ui-1.10.3.min.js-Bibliothek.

Ihr Problem wird durch das Duplizieren Ihrer jQuery-UI-Kernskripts verursacht (prüfen Sie, ob Sie eine andere Bibliothek wie jquery-ui-1.10.3.drag-drop.min.js verwenden.).

Laden Sie nur einmal, und Ihr Problem wird verschwinden.

7
Thanos

Hatte das gleiche Problem, weil ich beides hatte. @ Html.TextBoxFor (m => m.StartDate, "{0: TT/MM/JJJJ}", neu {@class = "DatePicker"}) Und @ Html.HiddenFor (m => m.StartDate)

in der gleichen Form aus meiner Sicht.

0
Etienne

In meinem Fall war dies darauf zurückzuführen, dass ich eine Spanne mit der ID date hatte und die Eingabe dieselbe ID hatte. Die Eingabe einer anderen ID hat das Problem gelöst.

0