我正在尝试使用guidetextbox(文本框)作为基础创建自定义表单字段。在放入我的自定义逻辑之前,我为组件创建了一个文件夹,在里面我放了.content.xml,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
allowedParents="[*/parsys, */*layout]"
componentGroup="Adaptive Form"
jcr:description="AEM Form Custom input field"
jcr:primaryType="cq:Component"
jcr:title="AEM Form Custom input field"
sling:resourceSuperType="/libs/fd/af/components/guidetextbox">
<cq:template
jcr:primaryType="nt:unstructured"
jcr:title="Custom input"
guideNodeClass="guideCustomInput" />
</jcr:root>
我尝试通过将字段设置为必填字段(来自dialog.xml)来测试此字段,但字段保持为可选字段,文本字段周围没有红色边框。
有人可以建议还需要什么吗?
答案 0 :(得分:1)
如果您使用Touch UI进行对话,则应添加
required="{Boolean}true"
如果您使用旧的Ext Js对话框,则应添加
allowBlank="false"
作为对话框项的属性。
答案 1 :(得分:0)
据我所知,您必须在使用它的组件的dialog.xml中将该字段设置为必填字段。 通常这是通过添加
来完成的allowBlank="false"
到dialog.xml
答案 2 :(得分:0)
您不应更改guideNodeClass属性,因为这是AEM表单字段的内部工作。它应该保留为guideTextBox。
同样作为最佳实践,resourceSuperType不应该是绝对路径。最终的代码看起来像这样
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
allowedParents="[*/parsys, */*layout]"
componentGroup="Adaptive Form"
jcr:description="AEM Form Custom input field"
jcr:primaryType="cq:Component"
jcr:title="AEM Form Custom input field"
sling:resourceSuperType="fd/af/components/guidetextbox">
<cq:template
jcr:primaryType="nt:unstructured"
jcr:title="Custom input"
guideNodeClass="guideTextBox" />
</jcr:root>
答案 3 :(得分:0)
对于AEM表单,您需要设置mandatory =“true”,而不是必需或allowBlank。您可以直接在xml中的字段上执行此操作,也可以通过必填复选框通过Forms UI执行此操作。