对于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不存在。
答案 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" ... />