首页 > 解决方案 > 条件单模态对话框关闭

问题描述

我在页面上有一个项目列表和一个带有属性 [up-modal] 的链接,该链接指向带有用于将新项目添加到列表中的表单的页面。该表单在模式对话框中打开并具有 [up-target] 属性,因此它是由 Ajax 在 unpoly 的帮助下提交的。

我不知道如何关闭对话框并更新基础页面上的项目列表,以防表单提交时没有错误并且服务器端出现错误我希望对话框保持打开并显示有错误的表格。

如果我将属性 [up-sticky] 添加到打开模式对话框的链接中,正确提交的表单的结果会出现在模式对话框中,而不是放在页面上。

如果没有 [up-sticky] 属性,提交后有错误的表单将替换底层页面。

那么如何做到这一点呢?

标签: unpoly

解决方案


我假设你有一条路线/page-with-list和一条路线/modal-form

/page-with-list你有一个<div class="list">...</div>.

/modal-form我会这样写<form>

<form action="/process-modal-form" up-target=".list" up-layer="page" up-fail-layer="modal">
  ..
</form>

如果表单成功,这应该.list在页面层中替换,但如果失败,则在模式层中替换表单。在表单中,Unpoly 会自动设置up-fail-target与表单匹配的属性。


推荐阅读