在lotus notes中从另一个表单获取字段值,以便在web上执行验证

Getting field values from another form to perform validation on the web in lotus notes

本文关键字:web 验证 执行 字段 notes lotus 表单 另一个 获取      更新时间:2023-09-26

我在lotus notes表单(比如主表单)上有一个单选按钮字段。如果它被选择为"是",链接将被解除隐藏。点击此链接,将打开另一个表单。如果在单选按钮中,在主表单中选择"Yes",则必须填写第二个表单中的内容。所以我需要写一个验证,如果单选按钮字段是"是",第二个表单内的字段没有填写,那么它应该显示一个弹出窗口,要求填写第二个表单中的字段。如何在主表单上获得第二个表单中的字段值以执行验证?

你真的不能做你所描述的你想做的。当您想要对第一个表单的数据进行验证时,第二个(弹出式)表单及其内容将不再存在于客户机(浏览器)上下文中。有三种可能的方法来解决这个问题,但其中只有两种是实际可行的。

让我们先抛弃这个不切实际的方法。这将使弹出式表单将一些内容写回它的父/打开器,或者作为JavaScript变量,或者作为DOM内容(Domino表单外部的字段或隐藏元素等),或者作为cookie值。跨浏览器可靠地设置打开器关系可能是一个问题,但这是可行的。问题是,无论您如何做到这一点,您都不能保证当您需要它(或期望它)时该值将在那里,除非最初填写父表单。如果曾经编辑过文档,则无法知道用户是否已经在弹出窗口上填写了数据。在初始会话期间使用表单写入JS变量或DOM的任何内容仅在初始会话期间存在。饼干不是永久的;即使你试图通过过期值赋予它们永生,它们也可以被用户清除。不管你怎么做,你都是在告诉那些以前填写过你想要的数据的人,他们需要再填写一次。

第二种方法是回调服务器,查看弹出表单是否已提交并转换为Notes文档。这根本无法扩展;即使所有的事情都发生在一台服务器上,也无法保证您正在查找的文档在您需要它的时候已经写好并建立了索引,这涉及到时间因素。如果用户已经看到过一次验证唠叨,按你说的做了,然后又得到了唠叨,你就没有交到任何朋友。

第三种方法是在一个表单上完成所有需要做的事情。(如果你对弹出窗口的想法很感兴趣,你可以使用CSS来做这个弹出窗口。)你知道,不管你是否喜欢另一种方式,这都不重要,这是唯一可靠的方式,让用户满意。是的,这将意味着你需要做一些额外的工作。你是一名开发人员——这是你赖以为生的工作。您甚至可以保持现有应用程序的结构不变;WQO和WQS代理意味着您可以在将文档发送给用户之前将它们粘合在一起,并在保存它们之前再次将它们分开。这是唯一的方法,保证足够快,足够可靠,可以在网络上使用。