Primefaces Captcha消失或无效更新/刷新无效输入?
我在h:form
有以下代码片段
如果我正确输入validation码,这可以正常工作。 但是,如果我输入的值无效,则validation码组件就会消失。
我尝试删除update="captchaGrid"
属性。 这一次,validation码并没有消失。 相反,它没有在视觉上刷新,但(我猜)在内部。 因为正确键入两个单词仍会生成validation错误。
此外; 我不想使用ajax="false"
。
更新:我也试过oncomplete="Recaptcha.reload()"
。 没工作。 有一个错误。 但我不知道这是我的代码还是Primefaces 3.0 🙂
更新2:正如maple_shaft所指出的,事实certificate这是Primefaces / Recaptcha的一个问题。 所以我正在寻找你可能建议的任何肮脏的黑客。
任何帮助赞赏。
你不会喜欢我的答案,但这不是一个错误。
Primefaces问题1642标记为无法修复。
Primefaces Captcha使用Recaptcha,它不支持也不支持Ajax刷新。 您必须执行整页回发才能使此组件正常工作。 请记住,这也会影响在需要对面板进行Ajax刷新的组件中使用Captcha的能力,例如选项卡视图或向导组件。
编辑:另一方面,可能可以在使用captcha组件来实现类似的效果,但这似乎是一个肮脏的黑客。 对不起,我无法提供更多帮助。
它很脏,但尝试在对话框上使用validation码。 它对我有用….
为myBean ——->
public void onButtonAction(ActionEvent e) { RequestContext.getCurrentInstance().execute("captchaDlgWar.hide()"); //Do your stuff }
@ user2393398提示的推导。
不要更新p:captcha
,使用p:ajaxStatus
重新加载它。
我还没有找到任何重新加载validation码的方法,所以我做的是在使用JavaScript的oncomplete或onerror事件中重新加载它。
Recaptcha.reload();
也许这对你有用。