2016-05-02 6 views
0

In Adobe AEM habe ich einen CQ-Dialog (mit Granite UI), die einen Datumsauswahl in ihm hat. Es sieht wie folgt aus, wenn in der CQ-Dialog angezeigt:AEM nicht Daten innerhalb von Datepicker von JCR löschen, wenn Eingabefeld in leer geändert wird

enter image description here

Das Problem tritt auf, wenn ich einen Termin, und speichern Sie den Inhalt des Dialogs:

enter image description here

Wenn ich dies tun Ich kann die date -Eigenschaft nicht wieder auf leer setzen. Wenn ich das Dialogfeld öffne und das Datum in diesem Feld lösche und auf Speichern klicke, bleibt die Eigenschaft dort erhalten.

Dies ist eine Ausnahme meiner cq content.xml Datei-Dialog, der die Datumsauswahl enthält:

 <startdate 
      jcr:primaryType="nt:unstructured" 
      sling:resourceType="granite/ui/components/foundation/form/datepicker" 
      displayedFormat="YYYY-MM-DD" 
      emptyText="YYYY-MM-DD" 
      fieldDescription="If limited by a start date, add a start date value. (YYYY-MM-DD)" 
      fieldLabel="Start Date" 
      name="./startdate" 
      storedFormat="YYYY-MM-DD"/> 

Warum es nicht die Eigenschaft speichern, wenn ich es auf leer gesetzt und wie kann ich es beheben?

--------- ---------- EDIT

fand ich, dass, selbst wenn ich setze den Lösch Suffixe nicht als Orte in seiner Antwort @nateyolles , löscht der Dialog die Daten im Vollbildmodus. Es funktioniert immer noch nicht, wenn der cq-Dialog nicht im Vollbildmodus ist. Wie auch immer, ich bin mir sicher, dass dies ein Fehler in AEM ist.

Antwort

1

Verwenden Sie das Delete Suffix des Sling Post Servlet. Siehe Apache Sling doc.

<startdate 
    jcr:primaryType="nt:unstructured" 
    sling:resourceType="granite/ui/components/foundation/form/datepicker" 
    displayedFormat="YYYY-MM-DD" 
    emptyText="YYYY-MM-DD" 
    fieldDescription="If limited by a start date, add a start date value. (YYYY-MM-DD)" 
    fieldLabel="Start Date" 
    name="./startdate" 
    storedFormat="YYYY-MM-DD"/> 
<startdateType 
    jcr:primaryType="nt:unstructured" 
    sling:resourceType="granite/ui/components/foundation/form/hidden" 
    name="./[email protected]" 
    value="this text is ignored"/> 
+0

Das war meine erste Schätzung. Hier ist etwas Seltsames: Dies funktioniert korrekt, wenn der CQ-Dialog den gesamten Bildschirm einnimmt. Wenn der CQ-Dialog nicht den gesamten Browser-Bildschirm ausfüllt, funktioniert das nicht wirklich. Irgendwelche Ideen was passiert? – idungotnosn

1

Wie @nateyolles beantworten. Sie sollten die Browserkonsole und die Netzwerkregisterkarte öffnen, wenn Sie das Dialogfeld senden, um den Wert eines Formulars zu sehen, das vom Dialogfeld auf den Server übertragen wird.

+0

Das ist ein guter Vorschlag. Das werde ich tun, wenn ich heute eine Chance bekomme. – idungotnosn

Verwandte Themen