当你接触到表单后,你就已经为访问你最关心的元素做好了准备。表单是域、按钮、文本、图像和其他元素的容器,你将在表单中用JavaScript来处理这些元素。
简单的几个元素
对于LotusScript,有件事值得一提:除了Rich-Text域外的元素,如文本、单选框、列表框、复选框等,你可以用几乎相同的代码取得它们的值。例如:如果有一个“Location”域,不论它是何种类型,你都可以用下面的LotusScript代码取得它的值:
fieldVals = doc.Location
或者这样:
fieldVals = doc.GetItemValue("Location")
在LotusScript中,域的类型对于你要取值(值数组)的代码并不重要。不幸的是,这对于JavaScript并不适用。在JavaScript中,不同类型的域除了显示选项(比如单选框、复选框或者文本)外,并不像在Notes里那样,它们是不同的类型的对象,每一个都要用不同的方式去引用。其实,那也不是绝对的,有些对象是相似的,但是引用过程并不像在LotusScript里那么流畅。你会发现,你将花费很多时间手动寻找你的代码中的域(名)错误来使它们正常运行,那看起来很糟糕。
你首先要知道的一点是:在JavaScript中,没有所谓的Rich-Text域,在HTML中更没有。Notes里提供了一个可以放在浏览器里的富文本Java(不是JavaScript)小程序,从而可以得到富文本的一些功能,但是你并不能用JavaScript来对它编程,而且它也不是一个真正的HTML对象类型。
更让Notes开发人员惊讶的是,在Web上还没有数字型或时间型的域。HTML的域都是文本型的。尽管你能用它们来收集数字信息,如数量或单价,而保存的数据依然是文本。为了像数字一样使用它,你必须把它转换成数字类型。我将在后面详细讲解它。现在,要意识到一切都是文本,就像你在Notes的@Prompt对话框里输入的信息一样。
图 1
建立表单
为了理解得更深入,你将在我的帮助下做一个小实验。打开Domino Designer,创建一个新表单,在表单上创建一个名为“Get editable field value”的按钮和一个名为“CreatedBy”的文本域,把此域的缺省值设成:@V3UserName(如图1)。
如果你用R5的设计器(Designer),请把触发按钮的语言改成JavaScript。如果你像我一样用R6的设计器(Designer),就要稍微麻烦一些。在Notes/Domino6(ND6)中,你可以像在浏览器中使用JavaScript一样在Notes客户端中使用JavaScript。更重要的是,同一个按钮在不同的客户端里能运行不同的代码。在图2中,你将会看到一些选项,你将决定所写的代码是在Notes(“客户端”)还是在浏览器(“Web”)里运行。










