適用於HTML5表單的Form Bridge API form-bridge-apis-for-html-forms
您可以使用Form Bridge API開啟XFA型HTML5表單與您的應用程式之間的通訊通道。 表單Bridge API提供 連線 API來建立連線。
connect API接受處理常式做為引數。 在XFA型HTML5表單與表單Bridge之間成功建立連線後,就會叫用控制代碼。
您可以使用以下範常式式碼來建立連線。
// Example showing how to connect to FormBridge
window.addEventListener("FormBridgeInitialized",
function(event) {
var fb = event.detail.formBridge;
fb.connect(function() {
//use form bridge functions
})
})
可透過Bridge API使用 available-form-bridge-api-nbsp
getBridgeVersion()
傳回指令碼程式庫的版本號碼
- 輸入:無
- 輸出:指令碼程式庫的版本號碼
- 錯誤:無
isConnected() 檢查表單狀態是否已初始化
-
輸入:無
-
如果XFA表單狀態已初始化,輸出: True
-
錯誤:無
connect(handler, context) 連線至FormBridge,並在連線完成且表單狀態初始化後執行函式
-
輸入:
- 處理常式:在連線表單Bridge之後要執行的函式
- context: 處理常式 函式內容(這個)設定的物件。
-
輸出:無
-
錯誤:無
getDataXML(options) 傳回XML格式的目前表單資料
-
輸入:
-
選項: 包含下列屬性的JavaScript物件:
- 錯誤:錯誤處理常式函式
- success:成功處理常式函式。 此函式傳遞的物件包含 資料 屬性中的XML。
- context: success 函式內容(這個)設定的物件
- validationChecker:用於呼叫以檢查從伺服器收到的驗證錯誤的函式。 驗證函式傳遞錯誤字串的陣列。
- formState:必須傳回資料XML之XFA表單的JSON狀態。 如果未指定,它會傳回目前轉譯之表單的資料XML。
-
-
輸出: 無
-
錯誤: 無
registerConfig(configName, config) 向FormBridge註冊使用者/入口網站的特定設定。 這些設定會覆寫預設設定。 支援的設定會在設定區段中指定。
-
輸入:
-
configName: 要覆寫的組態名稱
-
widgetConfig: 允許使用者以自訂widget覆寫表單中的預設widget。 設定會覆寫,如下所示:
formBridge.registerConfig("widgetConfig":{/&;ast;configuration&;ast;/})
-
pagingConfig: 允許使用者覆寫僅呈現第一頁的預設行為。 設定會覆寫,如下所示:
window.formBridge.registerConfig("pagingConfig":{pagingDisabled: <true | false>, shrinkPageDisabled: <true | false> })。
-
LoggingConfig: 允許使用者覆寫記錄層級、停用類別的記錄,或者是否要顯示記錄主控台或傳送至伺服器。 設定可以覆寫,如下所示:
code language-javascript formBridge.registerConfig{ "LoggerConfig" : { { "on":`<true *| *false>`, "category":`<array of categories>`, "level":`<level of categories>`, " type":`<"console"/"server"/"both">` } }
-
SubmitServiceProxyConfig: 允許使用者註冊提交和記錄器Proxy服務。
code language-javascript window.formBridge.registerConfig("submitServiceProxyConfig", { "submitServiceProxy" : "`<submitServiceProxy>`", "logServiceProxy": "`<logServiceProxy>`", "submitUrl" : "`<submitUrl>`" });
-
-
設定: 設定的值
-
-
輸出: 物件包含 資料 屬性中組態的原始值。
-
錯誤: 無
hideFields(fieldArray) 隱藏fieldArray中提供Som運算式的欄位。 將指定欄位的presence屬性設定為隱藏
-
輸入:
- fieldArray: 要隱藏之欄位的Som運算式陣列
-
輸出: 無
-
錯誤: 無
showFields(fieldArray) 顯示fieldArray中提供Som運算式的欄位。 將所提供欄位的presence屬性設定為可見
-
輸入:
- fieldArray: 要顯示之欄位的Som運算式陣列
-
輸出: 無
-
錯誤: 無
hideSubmitButtons() 隱藏表單中的所有提交按鈕
- 輸入:無
- 輸出:無
- 錯誤:如果表單狀態未初始化,則會擲回例外狀況
getFormState() 傳回代表表單狀態的JSON
-
輸入: 無
-
輸出: 物件,包含代表 data 屬性中目前表單狀態的JSON。
-
錯誤: 無
restoreFormState(options) 從選項物件中提供的JSON狀態還原表單狀態。 狀態已套用,並在作業完成後呼叫成功或錯誤處理常式
-
輸入:
-
選項: 包含下列屬性的JavaScript物件:
- 錯誤:錯誤處理常式函式
- success:成功處理常式函式
- context: success 函式內容(這個)設定的物件
- formState:表單的JSON狀態。 表單會還原為JSON狀態。
-
-
輸出: 無
-
錯誤: 無
setFocus (som) 將焦點設定在Som運算式中指定的欄位
- 輸入: 要設定焦點的欄位的Som運算式
- 輸出: 無
- 錯誤: 如果Som運算式不正確,則擲回例外狀況
setFieldValue (som, value) 設定指定Som運算式的欄位值
-
輸入:
- som: 包含欄位的Som運算式的陣列。 用來設定欄位值的som運算式。
- 值: 陣列包含對應於 som 陣列中所提供的Som運算式的值。 如果值的資料型別與fieldType不同,則不會修改值。
-
輸出: 無
-
錯誤: 如果有不正確的Som運算式,則擲回例外狀況
getFieldValue (som) 傳回指定Som運算式的欄位值
-
輸入: 陣列包含必須擷取其值的欄位的Som運算式
-
輸出: 物件,在 資料 屬性中包含結果為Array。
-
錯誤: 無
getFieldValue() API範例 example-of-nbsp-getfieldvalue-api
var a = formBridge.getFieldValue("xfa.form.form1.Subform1.TextField");
if(a.errors) {
var err;
while((err = a.getNextMessage()) != null)
alert(a.message)
} else {
alert(a.data[0])
}
getFieldProperties(som, property) 擷取Som運算式中所指定欄位之指定屬性的值清單
-
輸入:
- som: 包含欄位的Som運算式的陣列
- 屬性:需要其值的屬性名稱
-
輸出: 物件包含結果為 資料 屬性中的陣列
-
錯誤: 無
setFieldProperties(som, property, values) 針對Som運算式中指定的所有欄位,設定指定屬性的值
-
輸入:
- som: 陣列包含必須設定其值的欄位的Som運算式
- 屬性:必須設定其值的屬性
- 值: 陣列包含Som運算式中所指定欄位之指定屬性的值
-
輸出: 無
-
錯誤: 無
表單Bridge API的範例用法 sample-usage-of-form-bridge-api
// Example 1: FormBridge.restoreFormState
function loadFormState() {
var suc = function(obj) {
//success
}
var err = function(obj) {
while(var t = obj.getNextMessage()) {
$("#errorDiv").append("<div>"+t.message+"</div>");
}
}
var _formState = // load form state from storage
formBridge.restoreFormState({success:suc,error:err,formState:_formState}); // not passing a context means that this will be formBridge itself. Validation errors will be checked.
}
//--------------------------------------------------------------------------------------------------
//Example 2: FormBridge.submitForm
function SubmitForm() {
var suc = function(obj) {
var data = obj.data;
// submit the data to a url;
}
var err = function(obj) {
while(var t = obj.getNextMessage()) {
$("#errorDiv").append("<div>"+t.message+"</div>");
}
}
formBridge.submitForm({success:suc,error:err}); // not passing a context means that this will be formBridge itself. Validation errors will be checked.
}