Xpages富文本验证

时间:2014-11-05 22:24:53

标签: validation xpages

有没有办法验证富文本我添加了一个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>

2 个答案:

答案 0 :(得分:6)

此外,validatorRequired是必需的,但它本身并没有帮助。

如果用户点击RichText字段并且没有输入任何内容,那么它的内容将被设置为

<p dir="ltr">
    &nbsp;</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)[^>]+)>)|&nbsp;/ig, "").trim();                             
                return text !== "";
            }]]></xp:this.expression>
        </xp:validateExpression>
        <xp:validateRequired
            message="Attachment is missing" />
    </xp:this.validators>
</xp:inputRichText>

正则表达式会删除除图片标记<...>和链接标记&nbsp;之外的所有html标记<img...><a...>

答案 1 :(得分:1)

对于标准组件,我知道只有在有requiredValidator的情况下才会触发验证器。基本上,如果您希望确保内容符合特定条件,则假设您还需要验证该字段不是空白。