当输入字段更改为空时,AEM不会从JCR中删除datepicker内的数据

时间:2016-05-02 19:06:44

标签: aem sling

在Adobe AEM中,我有一个CQ对话框(使用Granite UI),里面有一个日期选择器。在CQ对话框中查看时看起来像这样:

NavigableString

每当我设置日期时都会出现问题,并保存对话框的内容:

enter image description here

当我这样做时,我无法再将日期属性设置为空白。如果我打开对话框并删除此字段内的日期并单击“保存”,则该属性仍然保留在那里。

这是我的cq对话框的content.xml文件,其中包含datepicker:

        <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"/>

为什么在我将其设置为空白时保存属性并且如何解决?

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

我发现即使我没有将删除后缀作为@nateyolles放在他的答案中,对话框也会删除全屏模式下的日期。当cq对话框未处于全屏模式时,它仍然不起作用。无论哪种方式,我都确定这是AEM中的一个错误。

3 个答案:

答案 0 :(得分:1)

使用Sling Post Servlet的删除后缀。请参阅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="./startdate@Delete"
    value="this text is ignored"/>

答案 1 :(得分:1)

正如@nateyolles的回答。提交对话框时,应打开浏览器控制台和网络选项卡,以查看对话框正在传输到服务器的任何表单值。

答案 2 :(得分:0)

您还可以使用珊瑚ui中的日期选择器:granite / ui / components / coral / foundation / form / datepicker

我已经看到了旧的基础组件和新的珊瑚ui可以解决的问题。