如何在AEM / CRX中输入字段?

问题描述 投票:0回答:1

由于我们的AEM专家目前不在办公室,所以我需要在CRX中修复某些问题。我的网站上有一个带有复选框的表单,作者可以在其中旁边设置文本。现在,我正在尝试添加功能以设置创作对话框中需要的此复选框。

我能够在创作中找到一个具有此属性的文本字段,但是在CRX的html中,我只看到代码required=${required},其中像label这样的其他字段显示为${properties.label},并且在CRX中具有相应的节点。我不了解如何实施要求,并且在这里需要帮助。

我已经尝试将required=${required}添加到我的复选框输入标记中,但这没有用,因为在创作对话框中仍然没有复选框/开关来使该字段成为必填字段(这是预期的)。

这是标记中的行,如果作者在创作对话框中将其设置为required:

<input required="${required}" type="checkbox" name="campaignform-termsofservice"/>

这是我希望能够使复选框成为所需的整个html:

<div data-sly-test="${!empty}" class="form__text">
<label class="maut-checkbox--container">

    <input required="${required}" type="checkbox" name="campaignform-termsofservice"/>
    <span class="maut-checkbox--checkmark"></span>

    <span>${properties.checkboxtext @context='html'}</span>
    <div><a href="${properties.tncLink @ extension='html'}">${properties.tncText}</a></div>
    <div style="color:white;" class="authoring-error" data-sly-test="${wcmmode.edit && !tncDate.tncLinkActivationDate}">${'b2x.maut.campaignform.dialog.tos.activationmessage' @ i18n, source='user'}</div>
    <input type="hidden" name="maut.field.tnc" value="${tncDate.tncLinkActivationDate}" />
</label>
</div>

现在,我只需要弄清楚如何在创作对话框中显示将其设置为必需的选项。

提前感谢

input aem required crx
1个回答
0
投票

如果您想知道required=${required}的实现方式,则首先在该组件的html中寻找类似data-sly-use.required的内容。这将具有类似=com.project.yourProject.className或某些js文件的表达式。

让我们讨论最常见的Java案例。 data-sly-use的作用是创建您在表达式中提供的类的对象。在您的情况下,您的对象是required。然后,您需要检查表达式求值的java类。通常,所有后端逻辑代码都是它们的逻辑,如果需要对作者在对话框中输入的数据进行某些操作或验证,则将是它们的逻辑。该类还将包含将类变量与对话框的属性值映射的注释。希望这可以解释${required}的来源。如果查看data-sly-use表达式所引用的java类,这对您会更加清楚。

© www.soinside.com 2019 - 2024. All rights reserved.