当前位置:首页>java>写点代码吧:验证富文本字段

写点代码吧:验证富文本字段

  • 2026-10-21 13:29:14
写点代码吧:验证富文本字段

大家好,才是真的好。

很久没有写代码,感觉怪怪的。

主要是担心自己的代码能力得到很大的退化,以至于解决不了常规问题。

幸亏有个人问了我一个问题,就是在Notes文档中,如何进行富文本字段验证。

说来是真的,普通文本和数字字段有校验事件:

但富文本字段没有校验事件,如下图:

而且富文本字段中涉及到的内容也比较多,例如文本(包括空格)、附件、数据库/视图/文档链接等。

好在富文本字段所在的表单有个保存前的校验事件,这样我们就可以写点lotusscript代码进行校验,如下图:

代码全文:

Sub Querysave(Source As Notesuidocument, Continue As Variant)

Call Source.GotoField("Body")

On Error Resume Next

Call Source.SelectAll

Call Source.DeselectAll

On Error Goto 0

If Err <> 0 Then

Err = 0

Msgbox "请在富文本字段Body中输入内容!", 16, "错误提示"

Continue = False

Exit Sub

End If

End Sub

这里用的办法是使用办法Source.GotoField("Body")让光标跳到Body富文本字段中,,然后全部选择内容、然后再取消选择全部内容——如果富文本里面没有内容,就会报错(一般错误代码是4470之类),这时我们使用语句On Error Goto 0继续让代码运行,同时也会捕获Err错误代码,错误代码不等于0,执行提示【Msgbox "请在富文本字段Body中输入内容!", 16, "错误提示"】提示框,是不是很巧妙?

但是,这里有几个问题,就是利用UI前端来进行校验操作, 例如表单如果很长,而Body字段在最底下,那么界面就会自动滚动和闪烁;另外,如果Body字段里面用户已经输入了内容,还会看到选择和闪烁的过程——有些用户比较“刁钻”,他们不会满意这样做的;还有就是,Body字段中有任何内容都会通过校验检查。

还有第二招,就是在Body富文本字段的下面,加一个普通可编辑字段,例如ValidateBody字段,然后隐藏掉,在该字段中写公式来进行校验:

@If(@Trim(@Abstract([TextOnly];100 个;"";"Body"))= "";@Failure("请在正文Body中输入一些文本。");@Success)

这是检查Body正文字段中是否含有文本、包括空格、回行、Tab键盘等内容。

如果要校验附件,还需接着输入公式来进行校验:

@If(@Attachments != 0; @Success; @Trim(@Abstract([TextOnly]; 100; ""; "Body")) = ""; @Failure("请在正文Body中输入一些文本."); @Success)

在这个公式版本中,仅当有一个或多个合法文本字符时才会进行验证,例如不允许使用空格、制表符或换行符等。

不过,这里也有一个问题,@Attachments 是用来检查整个文档中的字段,如果文档中有多个可以放附件的富文本字段,则这个验证也不适用。

不过,我们还有别的办法。

本文参考了:https://breakingpar.com/bkp/home.nsf/0/87256B280015193F87256FE900584CF8

最后欢迎搜索公众号“协作者”来关注我。

也欢迎添加个人微信号:

如有兴趣也可以关注我的视频号:

最新文章

随机文章