rizer90: jQuery Datepicker + Clone function

Hallo zusammen

Nun ich habe ein Date Inputfeld welches mit jQuery UI Datepicker angezeigt wird.
Das Datum kommt in diesem Format daher: yy-mm-dd.
Jedoch möchte ich die Anzeige als dd.mm.yy anzeigen, aber versenden als yy-mm-dd.

Habe da angefangen jedoch komme ich nicht weiter, eventuell kann mir jemand helfen.

  
if (!Modernizr.inputtypes.date) {  
    jQuery('input[type=date]').each(function()) {  
        var original = $(this);  
        var copy = $(this).clone();  
  
        orginal.attr('type', 'hidden');  
  
        copy.attr('name', original.attr('name') + '_display');  
        copy.attr('id', original.attr('id') + '_display');  
        original.append(copy);  
  
        copy.datepicker({  
    		altField: "#" + original.attr('id'),  
            altFormat: "dd.mm.yy"  
    	});  
    });  
}
  1. Hallo,

    Was mir auf die Schnelle auffällt:

    original.append(copy);

    Du kannst kein input-Element an ein input-Element hängen. Du kannst aber ein input-Element nach dem input-Element einfügen:

    original.[link:http://api.jquery.com/after/@title=after](copy);

    Mathias

    1. Hallo,

      Was mir auf die Schnelle auffällt:

      original.append(copy);

      Du kannst kein input-Element an ein input-Element hängen. Du kannst aber ein input-Element nach dem input-Element einfügen:

      original.[link:http://api.jquery.com/after/@title=after](copy);

      Mathias

      Danke dir, bin aber leider noch nicht weiter gekommen... :(

      1. Hallo,

        Danke dir, bin aber leider noch nicht weiter gekommen... :(

        Okay, und nun?

        Ich schlage vor, dass du den Fehler genauer untersuchst und beschreibst.

        • Was genau ist gewünscht
        • Was tust du genau
        • Was funktioniert
        • Was funktioniert nicht

        Ferner:

        • Eine minimale Beispielseite online stellen
        • Die JavaScript-Fehlerkonsole nach Fehlern durchsuchen
        • Mit Debug-Ausgaben die Code-Ausführung untersuchen
        • Mit den Developer-Tools des Browsers das DOM untersuchen. Werden die Element korrekt erzeugt und eingehangen?

        Mathias

        1. Ich schlage vor, dass du den Fehler genauer untersuchst und beschreibst.

          • Was genau ist gewünscht
          • Was tust du genau
          • Was funktioniert
          • Was funktioniert nicht

          Anbei habe ich nun die Seite erstellt http://jsfiddle.net/rezix/8d8u9/

          Ich möchte folgendes:
          Das Formular muss das Datum in diesem Format versenden: yyyy-mm-dd.
          Jedoch soll es im Inputfeld in diesem Format angezeigt werden: dd-mm-yyyy

          Gruss
          rizer90

          1. Hallo,

            Anbei habe ich nun die Seite erstellt http://jsfiddle.net/rezix/8d8u9/

            Okay. Du hast meinen Hinweis mit append und after aber noch nicht beachtet.

            Ferner musst du nicht immer $(original) und $(copy) schreiben, original und copy sind bereits jQuery-Objekte, daher gibt $() sie unverändert zurück.

            Mir scheint, es fehlt der wichtigste Part: Das versteckte Feld zu aktualisieren, wenn sich das sichtbare ändert. Das ist möglich, indem du den change-Event überwachst, den Wert der Kopie ausliest und dem Original zuweist.

            Beispiel:
            http://jsfiddle.net/8d8u9/1/
            (Das Stylesheet von jQuery UI fehlt, und die Modernizr-Erkennung habe ich aus Testgründen herausgenommen.)

            Mathias

            1. Ferner musst du nicht immer $(original) und $(copy) schreiben, original und copy sind bereits jQuery-Objekte, daher gibt $() sie unverändert zurück.

              Mir scheint, es fehlt der wichtigste Part: Das versteckte Feld zu aktualisieren, wenn sich das sichtbare ändert. Das ist möglich, indem du den change-Event überwachst, den Wert der Kopie ausliest und dem Original zuweist.

              Beispiel:
              http://jsfiddle.net/8d8u9/1/
              (Das Stylesheet von jQuery UI fehlt, und die Modernizr-Erkennung habe ich aus Testgründen herausgenommen.)

              Mathias

              Hallo Mathias

              hat nun alles geklappt, danke für deine Unterstützung.

              Gruss

  2. Moin,

    Nun ich habe ein Date Inputfeld welches mit jQuery UI Datepicker angezeigt wird.

    gut.

    Das Datum kommt in diesem Format daher: yy-mm-dd.

    gut.

    Jedoch möchte ich die Anzeige als dd.mm.yy anzeigen, aber versenden als yy-mm-dd.

    schlecht.
    Ein einziges Inputfeld kann sowas nicht. Das was man beim Input sieht wird auch an den Server geschickt. Du hast mehrere Optionen.

    1. Entweder wandelst du den Inhalt vor dem Abschicken in dein gewünschtes Format um. Ergo fängst du das submit ab und änderst den Wert.

    2. Oder du hast ein Feld zum anzeigen (dd.mm.YYYY - visible) und eins für die send Daten (hidden yy-mm-dd). Dabei brauchst du natürlich nur einen Datepicker auf das Sichtbare Feld. Ob du jetzt clone benutzen musst weiß ich nicht. Eventuell können beide Inputfelder von vornherein im html sein?

    Gruß
    tugal, Land, Nkreich, Schland
    Ex