如何在XPages控件中添加不带标签的属性?

时间:2018-09-24 12:16:18

标签: xpages

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

我尝试过:

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

但随后出现错误消息:

  

描述资源路径位置类型必需属性“名称”   xp:attr不存在。

1 个答案:

答案 0 :(得分:7)

我不确定我是否理解“无需设置标签”的含义。 <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>

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

主题规则

<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" ... />