客户端脚本
客户端脚本是你可以使用的更常用且复杂的脚本类型之一。顾名思义,客户端脚本在浏览器中运行,即在客户端运行。它是唯一在客户端运行的脚本类型; 所有其他人将在 NetSuite 的服务器端执行。
客户端脚本的主要用途是响应用户与 NetSuite UI 中的记录表单的交互。
一旦用户在编辑模式下加载记录表单,就会触发 pageInit
事件,在用户可以与其进行交互之前,我们可以使用该事件在表单初始化时运行代码。
每当用户随后更改表单上的任何字段时,将触发一系列事件:
- 触发
validateField
事件,允许我们验证用户尝试在该字段中输入的值。我们可以使用它来接受或防止发生变化。 - 然后触发
fieldChanged
事件,允许我们响应该字段中的新值。 - 最后,
postSourcing
事件在任何和所有依赖字段也在其值中获取之后触发。这允许我们响应更改并确保我们正在处理所有正确的数据。
无论用户是在更改正文字段还是子列表字段,都会触发此系列事件。
当用户确实更改子列表行时,将触发另一系列事件:
- 每当用户最初选择新行或现有行时,就会触发
lineInit
事件,然后才能对该行上的字段进行任何更改。 - 每当用户单击“ 添加” 按钮添加新行时,将触发
validateLine
事件,以允许我们验证整行是否有效并可以添加到记录中。 - 每当用户单击“ 插入” 按钮在现有行上方添加新行时,就会触发
validateInsert
事件,其效果与validateLine
事件完全相同。 - 类似地,每当用户试图移除一条线时,就会触发
validateDelete
,允许允许或拒绝删除该线。 - [仅限 SuiteScript 1.0]最后,在相应的验证事件成功后,如果对行的更改也影响了事务总量的更改,则会触发
recalc
事件,以便我们响应我们的更改量交易。 - [仅限 SuiteScript 2.0]最后,在相应的验证事件成功后,会触发
sublistChanged
事件以允许我们响应已完成的换行。
最后,当用户单击记录上的 “ 保存” 按钮时,将触发 saveRecord
事件,该事件允许我们验证记录是否有效并且可以保存。我们可以阻止保存发生,也可以允许它继续此事件。
到目前为止,Client 脚本具有任何脚本类型的大多数事件,以及这些事件之间最复杂的关系。