我正在使用A4J,Richfaces开发Web应用程序。 我的要求之一是,我需要检查用户在尝试离开页面时是否更改了表单中的任何值。
我在页面中保存并取消按钮。
我使用a4j:command
按钮取消功能。点击取消按钮应该在下面做
我的a4j命令按钮代码是这样的
<a4j:commandButton action="MyClass.cancel_action"
onclick="checkIsPageChanged()"/>
这里的问题是,在使用a4j:commandButton
时,我无法调用中间javascript函数(检查用户是否更新了任何值并显示确认框的函数),然后使用ajax提交请求。
我查看了JSF生成的代码,代码就像(不是确切的但是语法)
<input type="button"
onclick="checkIsPageChanged();AJAX.submit('')/>
事情就是当我点击按钮时,它只调用checkIsPageChanged()
而不是调用AJAX.submit()
。
任何解决方法都可以帮助我。
提前谢谢。
答案 0 :(得分:3)
使用a4j:jsFunction
并在a4j:commandButton
返回true时从checkIsPageChanged()
拨打该电话。
例如。
<a4j:commandButton action="MyClass.cancel_action"
onclick="if(checkIsPageChanged()) { cancel(); }"/>
<a4j:jsFunction name="cancel" action="MyClass.cancel_action"/>
答案 1 :(得分:3)
更具体地说,我们可以使用:
onclick="if(!isPageChanged()) {return false}"
返回false将不会提交请求。