2016-07-22 1 views
0

Dies ist das zweite Mal, dass ich diese Frage gestellt habe. Weder die Antworten, die ich ursprünglich erhalten habe, noch die unzähligen anderen Antworten auf ähnliche Fragen haben mir geholfen, das Problem zu lösen.jQuery Datepicker okay beim ersten Laden einer Seite, aber danach fehlgeschlagen

Das Problem ist, dass nach der Initialisierung eines Datepicker-Objekts eine zweite Initialisierung dazu führt, dass es fehlschlägt. Ich habe versucht, alles zu verwischen und zu zerstören, aber nichts hat für mich funktioniert.

Bitte nehmen Sie sich einen Blick auf this simple page which demonstrates the problem

Hier ist die Javascript für die Seite ist, die die Datepicker Eingabeelemente enthält ...

$(document).ready (function(){ 
    sp = " "; 
    lf = '\n' 


    $(function(){ 
    $("input#datepicker").datepicker(); 
    $("input#datepicker2").datepicker(); 
    }) 


})// document ready 

ich Hilfe wirklich zu schätzen würde diese Funktion zu erhalten. Ich habe schon acht Stunden ohne Erfolg verbracht.

Danke,

-dmd-

+0

jQueryUI (und viele andere UI-Bibliotheken) fügen eine Menge "stuff" zu Elementen hinzu, und das Entfernen des Elements aus dem DOM durch Überschreiben des Inhalts des divs wird nicht beseitigt. Haben Sie versucht, vor dem Laden [destroy] (http://api.jqueryui.com/datepicker/#method- destroy) aufzurufen? –

+0

Könntest du bitte erklären, wie man das Datepicker-Objekt zerstört? –

+0

"Zerstörung" oben ist ein Hyperlink zu den Dokumenten (SO hat einige ziemlich schlechte Kontrast Probleme IMHO und es ist schwer zu sehen), aber es ist '$ (" .selector ") .datepicker (" zerstören ");' –

Antwort

0

Ihr Code ist veraltet. Sie haben ein Dokument bereit Funktion innerhalb eines Dokuments bereit Funktion ($(function(){}) eine Abkürzung von $(document).ready(function(){}) ist Aber das ist nicht das Problem den folgenden Code in Ihrer divtest.html verwenden und die Anrufe in datepicker.html entfernen:..

$(function(){ 
    $(document).on('DOMNodeInserted','input#datepicker,input#datepicker2', function(){ 
    $(this).datepicker(); 
    }); 
} 
+0

Danke, ich habe es ausprobiert, aber die datepicker Elemente werden nicht mehr angezeigt. –

0

Schließlich habe ich eine Lösung haben, und es ist einfach.

Auf der Seite picker, bevor picker Initialisierung, fügen sie diese Zeile

$('#ui-datepicker-div').remove(); 

dann

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

Dies funktioniert für mich und ich hoffe wirklich, es funktioniert für alle anderen, die mit dem Problem festgefahren sind.

Verwandte Themen