如何使p:commandButton提交表单(未调用JavaScript提交操作)

如何使p:commandButton提交表单(未调用JavaScript提交操作),javascript,jsf,primefaces,Javascript,Jsf,Primefaces,我正在使用primefaces开发几个GUI,我想在离开网站之前警告用户。我在这里找到了一个非常有效的解决方案: 下面是我正在使用的JavaScript代码(可在链接中找到) 我的问题是,我的primefaces保存按钮是ajax,不调用“提交”操作。用户在保存页面后也会被提醒他将离开网站。 commandButton的代码如下所示: <p:commandButton value="save" id="saveButton" validateClient="true" actionList

我正在使用primefaces开发几个GUI,我想在离开网站之前警告用户。我在这里找到了一个非常有效的解决方案: 下面是我正在使用的JavaScript代码(可在链接中找到)

我的问题是,我的primefaces保存按钮是ajax,不调用“提交”操作。用户在保存页面后也会被提醒他将离开网站。 commandButton的代码如下所示:

<p:commandButton value="save" id="saveButton" validateClient="true" actionListener="#{myView.save}" update="description name" style="float:right">     </p:commandButton>

我尝试在ajax调用中添加“执行表单”:

<p:commandButton value="save" id="saveButton" validateClient="true" actionListener="#{myView.save}" update="description name" style="float:right">
<p:ajax execute="@form"> 
</p:commandButton>

但它也不起作用。 如果按钮设置为$ajax=“false”$一切正常,但我希望避免它。 有人能帮忙吗?
非常感谢

在脚本中添加此
函数

function save(){
    alert('I am here');
    setConfirmUnload(true);
}

并在命令按钮中插入
onclick=“save();”

是否可以为按钮添加属性type=“submit”?
不知道这是否适用于primefaces,但也适用于其他框架:)

这还不是很枯燥。我正在寻找jsf/primefaces解决方案,如果有的话。如果你不知道,你的答案可能就是解决办法@lug:jsf和PrimeFaces的一个方面是它们生成html。实际上,这是一个jsf/PrimeFaces解决方案。@JasperDeVries:我在考虑你的“枯燥”评论,但出于这样或那样的原因,我能想到的只是向组件添加一个特定的类,并在此基础上创建一个eventlisterner,但这几乎是一样的。有什么想法吗?@JasperdeVries:是的,但是如果你在一个页面上有多个表单可以做不同的事情,那么旗帜/信号灯可能会被不公正地清除。因此,显式地将其添加到commandButton中,您知道实际的“save”更显式。当您将所有这些都打包到自己的组件中时,“干燥”方面就减少了。当使用ajax向服务器发送值时,并非所有的“其他框架”都会调用“提交”。但您可以(与所有html一样)使用“onclick”javascript事件处理程序或类似的事件处理程序。这很容易解决way@lug另一个解决方案是使用“标准”jsf,如:
function save(){
    alert('I am here');
    setConfirmUnload(true);
}