javascript - 使用 p :commandButton 意外刷新整个页面

标签 javascript jsf primefaces

我正在使用下面的代码删除p:datatable中的行。如果我在 p:commandbutton 标签内使用 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 属性改写为
if (!confirm('您确定要删除这条记录吗?')) return false;
那么它应该按预期工作。它的作用是:

  • 如果用户确认不返回值,PrimeFaces 可以进一步处理 AJAX 请求
  • 如果用户取消确认,则返回值为 false 并且进一步处理将中止。

如果您只是执行返回确认('您确定吗?')并且用户确定,则返回的true值会取消添加的PrimeFacesreturn false code> 位于 onclick 属性末尾(它针对 ajax 执行此操作),您看到的不是 ajax 请求,而是正常的帖子提交(页面重新加载)。
return false cancels default behavior of html elements .

关于javascript - 使用 p :commandButton 意外刷新整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36219027/

相关文章:

java - JSF - 在单一方法中检查 null 和 empty

JSF只读inputText问题

JSF FacesContext#addMessage 不显示

javascript - 删除 createMediaElementSource

javascript - ember 中的动态页面

javascript - 从另一台计算机调用我的页面时,httprequest 不起作用

css - 如何更改 Primefaces 组件的宽度?

javascript - JQuery 返回 Null .next()

jsf - 如何获取查询字符串

jsf - 正在处理的页面只是在错误/异常的中途留空,而不是转发到 web.xml 中指定的错误页面