Xpages富文本验证

Mar*_*yam 1 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>
Run Code Online (Sandbox Code Playgroud)

Knu*_*ann 6

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

如果用户单击RichText字段并且未输入任何内容,则将其内容设置为

<p dir="ltr">
    &nbsp;</p>
Run Code Online (Sandbox Code Playgroud)

并且空值的测试不再起作用.

因此,在测试""之前,我们必须使用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>
Run Code Online (Sandbox Code Playgroud)

正则表达式消除了所有html标记<...>以及&nbsp;图像标记<img...>和链接标记<a...>.