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(); 

也许这对你有用。