gpt4 book ai didi

jsf - 拦截 a4j :commandButton request

转载 作者:行者123 更新时间:2023-12-04 14:44:58 26 4
gpt4 key购买 nike

我正在使用 A4J、Richfaces 开发 Web 应用程序。我的要求之一是,我需要检查用户在尝试离开页面时是否更改了表单中的任何值。

我在页面中有保存和取消按钮。我正在使用 a4j:command 按钮来实现取消功能。单击取消按钮应该执行以下操作

  1. 检查用户是否修改了表单中的任何内容(这是我通过使用 javascript 完成的,如果用户更改了任何值,则有一个标志)
  2. 当用户更改表单值时显示确认框(javascript 确认值“你真的要放弃更改——是否”)
  3. 如果用户回答"is",则使用 AJAX(通过使用 A4J)提交表单

我的a4j命令按钮代码是这样的

<a4j:commandButton action="MyClass.cancel_action"
onclick="checkIsPageChanged()"/>

这里的问题是,在使用 a4j:commandButton 时,我无法调用中间 javascript 函数(检查用户是否已更新任何值并显示确认框的函数)然后提交请求使用 Ajax 。我查看了 JSF 生成的代码,代码就像(不完全是语法)

<input type="button"
onclick="checkIsPageChanged();AJAX.submit('')/>

问题是当我点击按钮时,它只调用 checkIsPageChanged() 而不是调用 AJAX.submit()

对此的任何解决方法都会对我有所帮助。

提前谢谢你。

最佳答案

使用 a4j:jsFunction 并在 checkIsPageChanged() 返回 true 时从您的 a4j:commandButton 调用它。

例如。

<a4j:commandButton action="MyClass.cancel_action"
onclick="if(checkIsPageChanged()) { cancel(); }"/>
<a4j:jsFunction name="cancel" action="MyClass.cancel_action"/>

关于jsf - 拦截 a4j :commandButton request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1315882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com