客戶端指令碼

客戶端指令碼是你可以使用的更常用且複雜的指令碼型別之一。顧名思義,客戶端指令碼在瀏覽器中執行,即在客戶端執行。它是唯一在客戶端執行的指令碼型別; 所有其他人將在 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 指令碼具有任何指令碼型別的大多數事件,以及這些事件之間最複雜的關係。