客户端脚本

客户端脚本是你可以使用的更常用且复杂的脚本类型之一。顾名思义,客户端脚本在浏览器中运行,即在客户端运行。它是唯一在客户端运行的脚本类型; 所有其他人将在 NetSuite 的服务器端执行。

客户端脚本的主要用途是响应用户与 NetSuite UI 中的记录表单的交互。

一旦用户在编辑模式下加载记录表单,就会触发 pageInit 事件,在用户可以与其进行交互之前,我们可以使用该事件在表单初始化时运行代码。

每当用户随后更改表单上的任何字段时,将触发一系列事件:

  1. 触发 validateField 事件,允许我们验证用户尝试在该字段中输入的值。我们可以使用它来接受或防止发生变化。
  2. 然后触发 fieldChanged 事件,允许我们响应该字段中的新值。
  3. 最后,postSourcing 事件在任何和所有依赖字段也在其值中获取之后触发。这允许我们响应更改确保我们正在处理所有正确的数据。

无论用户是在更改正文字段还是子列表字段,都会触发此系列事件。

当用户确实更改子列表行时,将触发另一系列事件:

  1. 每当用户最初选择新行或现有行时,就会触发 lineInit 事件,然后才能对该行上的字段进行任何更改。
  2. 每当用户单击“ 添加” 按钮添加新行时,将触发 validateLine 事件,以允许我们验证整行是否有效并可以添加到记录中。
  3. 每当用户单击“ 插入” 按钮在现有行上方添加新行时,就会触发 validateInsert 事件,其效果与 validateLine 事件完全相同。
  4. 类似地,每当用户试图移除一条线时,就会触发 validateDelete,允许允许或拒绝删除该线。
  5. [仅限 SuiteScript 1.0]最后,在相应的验证事件成功后,如果对行的更改也影响了事务总量的更改,则会触发 recalc 事件,以便我们响应我们的更改量交易。
  6. [仅限 SuiteScript 2.0]最后,在相应的验证事件成功后,会触发 sublistChanged 事件以允许我们响应已完成的换行。

最后,当用户单击记录上的 “ 保存” 按钮时,将触发 saveRecord 事件,该事件允许我们验证记录是否有效并且可以保存。我们可以阻止保存发生,也可以允许它继续此事件。

到目前为止,Client 脚本具有任何脚本类型的大多数事件,以及这些事件之间最复杂的关系。