Javascript 使用p:commandButton进行意外的整页刷新

Javascript 使用p:commandButton进行意外的整页刷新,javascript,jsf,primefaces,Javascript,Jsf,Primefaces,我正在使用下面的代码删除p:datatable中的行。如果我在p:commandbuttontag中使用onclick方法,则刷新整个页面,否则工作正常。请给我一些解决办法 <p:commandButton title="Delete Affiliation" immediate="true" process="@this" update="affiliationList" alt="Delete Affiliation" icon="ui-icon-trash" acti

我正在使用下面的代码删除
p:datatable
中的行。如果我在
p:commandbutton
tag中使用onclick方法,则刷新整个页面,否则工作正常。请给我一些解决办法

<p:commandButton title="Delete Affiliation" immediate="true" process="@this"
    update="affiliationList" alt="Delete Affiliation" icon="ui-icon-trash"
    action="#{readAuthorDetailsbean.deleteSelectedAffiliation}" style="width:30px"
    onclick="return confirm('Are you sure, Do you want to delete this record?');">
    <f:setPropertyActionListener value="#{affiliation}" 
        target="#{readAuthorDetailsbean.selectedAffilliationListAL}" />
</p:commandButton>

如果将
的onclick属性改为
如果(!confirm('您确定要删除此记录吗?'))返回false
那么它应该像预期的那样工作。它所做的是:

  • 若用户确认它并没有返回值,PrimeFaces可以进一步处理AJAX请求
  • 如果用户取消确认,则返回值为
    false
    ,并中止进一步处理
如果您只是执行
返回确认('you sure?')
并且用户确定,则返回的
true
值将取消在
onclick
属性末尾添加的
return false
(它对ajax执行此操作)而不是ajax请求,您将看到正常的提交后(页面重新加载)。

.

这个javascript或jquery是如何关联的?你想让我们如何繁殖?请出示证件。很可能您从actionView完整代码中返回了一些内容。我添加了onclick(Java脚本函数)。当我在删除确认中单击“是”时,返回true。刷新整个页面。默认情况下PrimeFaces添加
返回false
(因为ajax)从
p:commandButton
组件生成html代码,这样它就不会触发表单提交。如果将
confirm()
添加到
onclick
中,则在用户单击“确定”后,返回值为
true
,表单提交发生(正常提交后,而不是ajax-因此页面刷新)。你可以试试。这在即将发布的6.0版本中得到了修复(很可能也是5.3.x版本)。看见