使用必填字段创建自定义aem表单字段

时间:2015-11-11 00:47:12

标签: adobe aem

我正在尝试使用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)来测试此字段,但字段保持为可选字段,文本字段周围没有红色边框。

有人可以建议还需要什么吗?

4 个答案:

答案 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执行此操作。