在我的应用程序中,关闭填充表单值的页面然后使用浏览器快捷键 Ctrl + Shift + T 打开表单包含以前输入的值,我想将这些表单字段清除为默认值。
页面加载的控制器代码
public void pageLoad()
{
if(FacesContext.getCurrentInstance().isPostback()){ return; }
purchaseOrderVO = new PurchaseOrderVO();
purchaseOrderVO.setLastSevenDays(true);
checkAll = false;
loadVendorsList();
}public void resetForm()
{
purchaseOrderVO = new PurchaseOrderVO();
purchaseOrderVO.setLastSevenDays(true);
purchaseOrderVO.setPurchaseOrderList(new ArrayList<PurchaseOrderVO>());
logger.info("in reset form");
}
xhtml trigering pageLoad功能
<f:event listener="#{purchaseOrderController.pageLoad}" type="preRenderView" />
xhtml trigering resetForm函数
<p:remoteCommand name="resetForm" action="#{purchaseOrderController.resetForm}" update="form1"></p:remoteCommand>
卸载前窗口的JQ
$(window).on("beforeunload", function() {
resetForm();
$('[id$=":form1]').trigger("reset");
});
使用快捷键 Ctrl + Shift + T 打开页面时,不会调用 pageLoad , resetForm 函数但是在表单可以更新页面关闭之前我还尝试在JQ中放置超时但它没有重置表单