有没有办法验证富文本我添加了一个validateExpression但是没有用。
由于
<xp:inputRichText
value="#{document1.Request}" id="inputRichText1" style="width:99.0%">
<xp:this.validators>
<xp:validateExpression
message="Attachment is missing">
<xp:this.expression><![CDATA[#{javascript: if(getComponent("inputRichText1").getSubmittedValue()!== ''){
return true
}}]]></xp:this.expression>
</xp:validateExpression>
</xp:this.validators></xp:inputRichText>
答案 0 :(得分:6)
此外,validatorRequired
是必需的,但它本身并没有帮助。
如果用户点击RichText字段并且没有输入任何内容,那么它的内容将被设置为
<p dir="ltr">
</p>
并且空值测试不再起作用。
因此,我们必须在测试&#34;&#34;之前用replace()消除它。
<xp:messages
id="messages1" />
<xp:inputRichText
value="#{document1.Request}"
id="inputRichText1"
style="width:99.0%"
disableClientSideValidation="true">
<xp:this.validators>
<xp:validateExpression message="Attachment is missing">
<xp:this.expression><![CDATA[#{javascript:
var text = (value + " ").replace(/(<((?!img|a\s)[^>]+)>)| /ig, "").trim();
return text !== "";
}]]></xp:this.expression>
</xp:validateExpression>
<xp:validateRequired
message="Attachment is missing" />
</xp:this.validators>
</xp:inputRichText>
正则表达式会删除除图片标记<...>
和链接标记
之外的所有html标记<img...>
和<a...>
。
答案 1 :(得分:1)
对于标准组件,我知道只有在有requiredValidator的情况下才会触发验证器。基本上,如果您希望确保内容符合特定条件,则假设您还需要验证该字段不是空白。