几个 Grails 应用程序,比如我正在写的那个,需要一个 /user 视图和 /admin 视图,它们是“仪表板”,基本上用户或管理员登陆该页面,可能在成功登录并且所有数据表和选项卡都在那里之后,因此他们几乎不需要离开该页面,从而提供更令人满意的用户体验,就像 Gmail 或 Mint 的用户已经习惯了一样。
为了允许从主 /user 仪表板进行搜索和表单发布,我一直在使用 modalbox 插件 v0.4 grails install modalbox
。Modalbox 显然正在管理 GET/POST 本身,不幸的是,它丢失了典型约束块为您提供的 99% 的验证。
现在通过替换 g:submitButton 来解决这个问题,在提交中放置一些基本的 JavaScript,如图所示。(当然,这是一个糟糕的解决方法。)
<input type="button" name="create" class="save" onclick="if (!(document.getElementById('name').value === '' || document.getElementById('summary').value === '')) { document.forms[0].submit(); }" value="Create" />
但一定有更好的办法! 我被告知要使用 g:remoteForm,但还没有看到一个足够完整的示例来使用 Modalbox。也许人们正在使用一个新窗口,它会像 Gmail 的撰写窗口一样自动关闭几秒钟?
对于 SiteMesh 模板,或者至少是“渲染模板:”,甚至是像 modalBox:createLink 这样的 GSP 标签,这可能是一个非常普遍的场景。
源代码可在Gtown 项目空间中找到。