我正在使用 A4J、Richfaces 开发 Web 应用程序。我的要求之一是,我需要检查用户在尝试离开页面时是否更改了表单中的任何值。
我在页面中有保存和取消按钮。我正在使用a4j:command
按钮来取消功能。单击取消按钮应该执行以下操作
- 检查用户是否修改了表单中的任何内容(我正在使用 javascript 执行此操作,如果用户更改了任何值,则有一个标志)
- 当用户更改表单值时显示确认框(javascript 确认值“您真的要放弃更改 - 是否”)
- 如果用户说是,则使用 AJAX 提交表单(使用 A4J)
我的 a4j 命令按钮代码是这样的
<a4j:commandButton action="MyClass.cancel_action"
onclick="checkIsPageChanged()"/>
这里的问题是,在使用 usinga4j:commandButton
时,我无法调用中间 javascript 函数(该函数检查用户是否更新了任何值并显示确认框)然后使用 ajax 提交请求。我查看了 JSF 生成的代码,代码就像(不是确切的,而是语法)
<input type="button"
onclick="checkIsPageChanged();AJAX.submit('')/>
问题是当我点击按钮时,它只是调用checkIsPageChanged()
而不是调用AJAX.submit()
。
任何解决方法都会对我有所帮助。
先感谢您。