如何将没有标签的属性添加到 XPages 控件?

How to add an attribute without a label to XPages control?

对于 xp:inputtext 控件,我想添加属性 [aria-required='true'] 但我想知道如何通过属性 属性 实现这一点而无需设置标签?

我试过:

<xp:this.attrs>
    <xp:attr>
        <xp:this.value><![CDATA[[aria-required='true']]]></xp:this.value>
    </xp:attr>
</xp:this.attrs>

但随后我收到错误消息:

Description Resource Path Location Type Required property "name" for xp:attr is not present.

我不确定我是否理解 "without having to set the label" 的意思。 <xp:attrs> 包含一个或多个 <xp:attr> 组件的集合。然后 <xp:attr> 组件包含 2 个属性 name=(仅限字符串)和 value=(仅限字符串)。

因此,如果您想为 HTML 对应标签设置自定义属性,您必须这样写:

<xp:inputText ...>
    <xp:this.attrs>
        <xp:attr name="aria-required" value="true" />
    </xp:this.attrs>
</xp:inputText>

如果您想自动显示某些属性,您还可以定义主题规则并应用它(当然,如果您有其他样式 and/or 通常应用于输入的规则,您必须确保在新规则中再次重复它们):

主题规则

<control>
    <name>Input.AriaRequired</name>
    <property>
        <name>attrs</name>
        <complex type="xp_attr">
            <property>
                <name>name</name>
                <value>aria-required</value>
            </property>
            <property>
                <name>value</name>
                <value>true</value>
            </property>
        </complex>
    </property>
</control>

应用主题的输入

<xp:inputText themeId="Input.AriaRequired" ... />