您可以使用表单桥API在基于XFA的HTML5表单与您的应用程序之间打开通信渠道。 表单桥API提供了 connect 用于创建连接的API。
的 connect API接受将处理程序作为参数。 在基于XFA的HTML5表单与表单桥之间成功创建连接后,将调用句柄。
您可以使用以下示例代码创建连接。
// Example showing how to connect to FormBridge
window.addEventListener("FormBridgeInitialized",
function(event) {
var fb = event.detail.formBridge;
fb.connect(function() {
//use form bridge functions
})
})
确保在包含formRuntime.jsp文件之前创建连接。
getBridgeVersion()
返回脚本库的版本号
isConnected() 检查表单状态是否已初始化
输入:无
输出: True 如果已初始化XFA表单状态
错误:无
connect(handler, context) 建立与FormBridge的连接,并在建立连接并初始化表单状态后执行该函数
输入:
输出:无
错误:无
getDataXML(options) 以XML格式返回当前表单数据
输入:
选项: 包含以下属性的JavaScript对象:
输出: 无
错误: 无
registerConfig(configName, config) 使用FormBridge注册用户/门户特定配置。 这些配置会覆盖默认配置。 配置部分中指定了支持的配置。
输入:
configName: 要覆盖的配置的名称
widgetConfig: 允许用户使用自定义小组件覆盖表单中的默认小组件。 配置将被覆盖,如下所示:
formBridge.registerConfig("widgetConfig":{/*configuration*/})
pagingConfig: 允许用户覆盖仅渲染第一页的默认行为。 配置将被覆盖,如下所示:
window.formBridge.registerConfig("pagingConfig":{pagingDisabled: <true false="">, shrinkPageDisabled: <true false=""> })。
LoggingConfig: 允许用户覆盖日志记录级别、禁用类别的日志记录,或者是显示日志控制台还是发送到服务器。 配置可以覆盖如下:
formBridge.registerConfig{
"LoggerConfig" : {
{
"on":`<true *| *false>`,
"category":`<array of categories>`,
"level":`<level of categories>`, "
type":`<"console"/"server"/"both">`
}
}
SubmitServiceProxyConfig: 允许用户注册提交和记录代理服务。
window.formBridge.registerConfig("submitServiceProxyConfig",
{
"submitServiceProxy" : "`<submitServiceProxy>`",
"logServiceProxy": "`<logServiceProxy>`",
"submitUrl" : "`<submitUrl>`"
});
配置: 配置的值
输出: 包含中配置原始值的对象 数据 属性。
错误: 无
hideFields(fieldArray) 隐藏其Som表达式在fieldArray中提供的字段。 将指定字段的存在属性设置为不可见
输入:
输出: 无
错误: 无
showFields(fieldArray) 显示其Som表达式在fieldArray中提供的字段。 将提供字段的存在属性设置为可见
输入:
输出: 无
错误: 无
hideSubmitButtons() 隐藏表单中的所有提交按钮
getFormState() 返回表示表单状态的JSON
输入: 无
输出: 包含JSON的对象,该JSON表示 数据 属性。
错误: 无
restoreFormState(options) 从选项对象中提供的JSON状态还原表单状态。 操作完成后,将应用状态并调用成功或错误处理程序
输入:
选项: 包含以下属性的JavaScript对象:
输出: 无
错误: 无
setFocus(som) 集中在Som表达式中指定的字段
setFieldValue(som, value) 设置给定Som表达式的字段值
输入:
输出: 无
错误: 在Som表达式不正确时引发异常
getFieldValue(som) 返回给定Som表达式的字段值
输入: 包含值必须检索的字段的Som表达式的数组
输出: 包含结果为Array的对象 数据 属性。
错误: 无
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表达式中指定的字段的给定属性的值列表
输入:
输出: *data *property中包含结果为Array的对象
错误: 无
setFieldProperties(som, property, values) 为Som表达式中指定的所有字段设置给定属性的值
输入:
输出: 无
错误: 无
// 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.
}