Javascript 如何在卸载jquery之前清除窗口上的窗体

Javascript 如何在卸载jquery之前清除窗口上的窗体,javascript,java,jquery,forms,primefaces,Javascript,Java,Jquery,Forms,Primefaces,在我的应用程序中,当使用浏览器快捷键Ctrl+Shift+T关闭并打开包含填充表单值的页面时,表单包含以前输入的值,我希望将这些表单字段清除为其默认值 页面加载的控制器代码 public void pageLoad() { if(FacesContext.getCurrentInstance().isPostback()){ return; } purchaseOrderVO = new PurchaseOrderVO(); purchaseOrderVO.setLast

在我的应用程序中,当使用浏览器快捷键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");
}
$(window).on("beforeunload", function() {
        resetForm();
        $('[id$=":form1]').trigger("reset");
    });

当使用快捷键Ctrl+Shift+T打开页面时,pageLoad不会被调用,resetForm功能会被调用,但在表单可以更新之前,页面会关闭。我也尝试过在JQ中放置一个超时,但它不会重置表单

这就是这个快捷方式的妙处!为什么这么复杂?为什么不使用ViewScope bean呢?没有caching@Kukeltje你的两个建议都试过了,但都不管用。
$(window).on("beforeunload", function() {
        resetForm();
        $('[id$=":form1]').trigger("reset");
    });