molily: timepicker aufruf in temp-seite mit ajax ?

Beitrag lesen

Hallo!

<script type="text/javascript" language="javascript" src="../javascript/protoplasm.js"></script>
        <script language="javascript">
            Protoplasm.use('timepicker').transform('input.timepicker');
        </script>

Die meisten JavaScripte arbeiten nach dem Prinzip des »Unobtrusive JavaScript«:

1. Sie werden einmalig nach dem erfolgreichen Laden des Dokuments aktiviert, z.B. durch einen Funktionsaufruf. Hier: Protoplasm.use('timepicker').transform()

2. Sie suchen gewisse Elemente im Dokument heraus, oftmals anhand eines CSS-Selektors, anhand einer Klasse oder ähnlich. Hier: input.timepicker.

3. Sie fügen den Elementen ein gewisses Verhalten hinzu, indem sie Event-Handler registrieren. Hier: Die Date-Picker-Funktionalität.

4.  Sie fügen gegebenenfalls weitere Elemente ins Dokument ein. Hier: Der Date-Picker-Dialog mit einem interaktiven Kalender.

Wenn du jetzt später, nach dieser Initialisierung, per Ajax HTML-Code nachlädst, und neue Elemente dem Dokument hinzufügst, dann werden diese nicht automatisch derselben Prozedur unterzogen. Sie erhalten also nicht automatisch das gewünschte JavaScript-Verhalten.

Für jedes nachträglich einfügte input.timepicker-Element müsstest du die Prozedur manuell wiederholen. Es kann sein, dass das mit einem weiteren Aufruf von Protoplasm.use('timepicker').transform('input.timepicker') möglich ist. Denn das sucht wahrscheinlich alle entsprechenden Eingabefelder heraus und verpasst ihnen das Datepicker-Verhalten. Es kann aber auch sein, dass dies Fehlverhalten produziert, wenn bei bereits initialisierten Felder noch einmal Event-Handler registriert werden.

Den Selektor könntest du natürlich eingrenzen, um nur Felder in einem bestimmten Element umzuwandeln.

Protoplasm.use('timepicker').transform('#dasGeänderteElement input.timepicker')

In deinem Fall anscheinend:

Protoplasm.use('timepicker').transform('#txtHint input.timepicker')

Wie du einzeln Datepicker erzeugen kannst, steht in der Doku:
http://jongsma.org/software/protoplasm/control/datepicker

Siehe auch die Klassenreferenz:
http://jongsma.org/software/protoplasm/api/controls/Control/DatePicker/

Mathias