Forms Wicket:模式窗口中的窗体

Forms Wicket:模式窗口中的窗体,forms,modal-dialog,wicket,Forms,Modal Dialog,Wicket,我编写了一个支持文件/图像上传的面板。因此,面板是一种简单的平面形式。面板在正常的Wicket页面中工作 我现在想做的是: 我想在模态窗口中使用面板。面板显示正确。但是,当我提交/上载新文件时,浏览器会提示我是否要离开页面。包含模式窗口DIV的页面本身就是一个表单 我的研究没有在模态窗口中找到任何关于表单的有趣信息,除非它必须是自包含的(嵌套表单)。我认为这一先决条件已经满足 是否有任何可用信息,我做错了什么?有教程吗?您需要使用AjaxSubmitButton(或AjaxSubmitLink)

我编写了一个支持文件/图像上传的面板。因此,面板是一种简单的平面形式。面板在正常的Wicket页面中工作

我现在想做的是: 我想在模态窗口中使用面板。面板显示正确。但是,当我提交/上载新文件时,浏览器会提示我是否要离开页面。包含模式窗口DIV的页面本身就是一个表单

我的研究没有在模态窗口中找到任何关于表单的有趣信息,除非它必须是自包含的(嵌套表单)。我认为这一先决条件已经满足


是否有任何可用信息,我做错了什么?有教程吗?

您需要使用
AjaxSubmitButton
(或
AjaxSubmitLink
)提交表单。问题在于模式窗口需要Ajax通信。如果您使用该窗口只是重新处理整个页面,而不关心Ajax的特性,那么您可以覆盖
ModalWindow\getCloseJavaScript()
方法。

正如Martijn所指出的,模式窗口依赖于Ajax通信。因此,请使用
AjaxSubmitButton
或等效按钮。当提交模式窗口后需要更新主窗口中的组件时,可以通过将它们添加到
AjaxRequestTarget
来完成


然而,当涉及到多部分表单(文件上传)时,这并不十分有效。显然,使用AJAX时,“多部分”不能很好地发挥作用。你必须做一个IFrame技巧,如这里所指出的:

是的,完全正确。AjaxSubmitButton对正常(非多部分)表单起到了作用。然而,multipart和AJAX并不是开箱即用的。所以整个上传是另一个问题。。。