6

ich Jquery Datetimepicker mit der folgenden VersionDatetime nicht Aufruf/Bindung richtig nach dem dynamischen Eingabefeld Entfernen

JQuery v1.7.2 
JQuery UI - v1.10.3 
jQuery timepicker addon V1.3 

In einem Modul verwende ich Eingabefeld durch „+“ und klicken dynamisch erschaffe als Binden des datetimepicker für diejenigen Eingaben, die dynamisch erzeugt werden, sowie Entfernen dieses Eingabefeldes durch Klicken auf "-".

Meine dynamische Eingabefelder erstellen immer wie unten:

datepickerfrom_1_1 
datepickerfrom_1_2 
datepickerfrom_1_3 
datepickerfrom_1_4 
datepickerfrom_1_5 
. 
. 
. 

ich die Datetime bin Bindung jQuery, indem Sie wie folgt:

$(window).load(function() { 
    $('body').on('focus', 'input[id^="datepickerfrom"]', function() { // Id's Containing "datepickerfrom" string, bind the datetimepicker 
     $(this).datetimepicker({ 
      dateFormat: 'yy-mm-dd', 
      timeFormat: 'HH:mm:ss' 
     }); 
    }); 
}); 

Die script(datetimepicker) funktioniert gut, wenn die dynamische Eingabe erstellt wird.

Ausgabe: Ich bin ein dynamisches Eingabefeld Hinzufügen von „+“ klicken, dann entfernte ich einige der Eingänge durch Klick auf „-“, wieder ich einige dynamischen Eingabefelder bin hinzufügen. Das zweite Mal erstellte Eingabefeld, das datetimepicker nicht korrekt aufruft/bindet.

Was könnte das Problem sein? Wie kann ich es lösen?

+1

Versuchen Sie 'Live'-Methode anstelle von' on'. –

+0

Live funktioniert nicht! – TomPHP

Antwort

1

Ich habe gerade versucht es in jsfiddle und es hat funktioniert, hier ist der Link: http://jsfiddle.net/juTRR/

Wenn Sie Ihr Problem wissen, ist es in jsfiddle reproduzieren so können wir sehen, was es ist, weil ich es nicht sehen. Vielleicht versuchen Sie $(document).ready statt $(window).load zu verwenden, es ist das einzige, was ich geändert habe. Oder vielleicht ist das Problem tatsächlich in Ihrem Hinzufügen und Entfernen von Funktionen, wenn ja, sollten Sie sie in Ihrem Beitrag setzen.

+1

Der Code funktioniert nicht! Wie sollte es funktionieren .. Wie Sie sehen, wenn wir einige Textbox entfernen, wenn das nächste Mal die ID steigt .. erstes Textfeld ist datefrom_1_1 Sekunde ist datefrom_1_2, wenn ich entferne und HINZUFÜGEN die ID ist datefrom_1_3 nicht datefrom_1_2. Ich ändere die ID erneut zu datefrom_1_2, so dass es nicht funktioniert. – TomPHP

+2

Ich habe es so modifiziert, dass es funktioniert wie du willst, es funktioniert immer noch wie gewohnt. http://jsfiddle.net/ZCNMs/ –

+0

danke, aber wenn ich benutze ich bin mit dem gleichen Problem konfrontiert. Liegt es an der JQuery-Version? – TomPHP

1

Ich denke, das Problem ist der jquery Kontext in der 'on' Funktion. In der Funktion jquery.on verwenden Sie $ (this). $ (this) bezieht sich auf den primären Selektor: $ ('body').

Haben Sie versucht:

$('input[id^="datepickerfrom"]').on('focus', function() { 

Examples zeigt Ihnen ein Eingabefeld benötigen. Also ich nehme an $ ('input [id^= "datepickerfrom"]) ist dein Eingabefeld.

+1

Nein, es funktioniert nicht! Ich habe versucht .. – TomPHP

+1

Die Dateien sind in der gleichen Reihenfolge JQuery v1.7.2, JQuery UI - v1.10.3, jQuery timepicker Addon V1.3 und ich habe die CSS, aber immer noch das gleiche Problem. Ich habe die Smooth.Js nicht hinzugefügt, da andere Js Fehler anzeigen, wenn ich sie einschließe. – TomPHP

Verwandte Themen