传统上,Web窗体配置为同步提交。 在同步提交时,当用户提交表单时,会被重定向到确认页面、感谢页面或在提交失败的情况下被重定向到错误页面。 但是,像单页应用程序这样的现代Web体验正在变得流行起来,这是因为网页保持静态,而客户端 — 服务器交互发生在后台。 您现在可以通过配置异步提交来通过自适应表单提供此体验。
在异步提交中,当用户提交表单时,表单开发人员会插入单独的体验,例如重定向到网站的其他表单或单独的部分。 作者还可以插入单独的服务,如将数据发送到不同的数据存储库,或者添加自定义分析引擎。在异步提交的情况下,自适应表单的行为类似于单页应用程序,因为当在服务器上验证提交的表单数据时,表单不会重新加载或其URL不会更改。
请阅读以了解有关自适应表单中异步提交的详细信息。
要为自适应表单配置异步提交,请执行以下操作:
在自适应表单创作模式下,选择表单容器对象并点按 以打开其属性。
在 提交 属性部分,启用 使用异步提交.
在 提交时 部分,选择以下选项之一以在成功提交表单时执行。
点按 以保存属性。
AEM Forms为表单提交提供开箱即用的成功和错误处理程序。 处理程序是根据服务器响应执行的客户端功能。 当提交表单时,数据被传输到服务器进行验证,服务器将响应返回到客户端,其中包含有关提交的成功或错误事件的信息。 信息作为参数传递给相关处理程序以执行函数。
此外,表单作者和开发人员可以在表单级别编写规则以覆盖默认处理程序。 有关更多信息,请参阅 使用规则覆盖默认处理程序.
让我们首先查看服务器响应中的成功和错误事件。
提交成功事件的服务器响应结构如下:
{
contentType : "<xmlschema or jsonschema>",
data : "<dataXML or dataJson>" ,
thankYouOption : <page/message>,
thankYouContent : "<thank you page url/thank you message>"
}
成功提交表单时的服务器响应包括:
成功处理程序读取服务器响应,并相应地重定向到配置的页面URL或显示消息。
提交错误事件的服务器响应结构如下:
{
errorCausedBy : "<CAPTCHA_VALIDATION or SERVER_SIDE_VALIDATION>",
errors : [
{ "somExpression" : "<SOM Expression>",
"errorMessage" : "<Error Message>"
},
...
]
}
在提交表单时出现错误时,服务器响应包括:
错误处理程序会读取服务器响应,并在表单上显示相应的错误消息。
表单开发人员和作者可以在表单级别在代码编辑器中编写规则以覆盖默认处理程序。 成功和错误事件的服务器响应在表单级别公开,开发人员可以使用进行访问 $event.data
在规则中。
执行以下步骤以在代码编辑器中编写规则以处理成功和错误事件。