在Adobe AEM中,我有一个CQ对话框(使用Granite UI),里面有一个日期选择器。在CQ对话框中查看时看起来像这样:
每当我设置日期时都会出现问题,并保存对话框的内容:
当我这样做时,我无法再将日期属性设置为空白。如果我打开对话框并删除此字段内的日期并单击“保存”,则该属性仍然保留在那里。
这是我的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中的一个错误。
答案 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可以解决的问题。