我有以下一段代码h:form
<h:panelGrid id="captchaGrid">
<p:captcha id="captcha" label="Captcha" required="true"
requiredMessage="required"
validatorMessage="...">
</p:captcha>
<p:message id="captchaMessage" for="captcha" />
</h:panelGrid>
<p:commandButton id="submitButton" value="save"
actionListener="#{userBean.save}" update="captchaGrid"
onstart="doSomething()"
oncomplete="doSomethingElse(xhr, status, args)" icon="ui-icon-check">
</p:commandButton>
如果我正确输入验证码,则效果很好。但是,如果我输入无效值,验证码组件就会消失。
我尝试删除update="captchaGrid"
属性。这一次,验证码并没有消失。相反,它并没有在视觉上刷新,而是(我猜)在内部刷新。因为正确输入这两个单词仍然会产生验证错误。
此外;我不想使用ajax="false"
.
Update:我也尝试过oncomplete="Recaptcha.reload()"
。没用。有一个错误。但我不知道这是我的代码还是 Primefaces 3.0 :)
更新2:正如maple_shaft指出的,事实证明这是Primefaces/Recaptcha的问题。所以我正在寻找你可能建议的任何肮脏的黑客。
任何帮助表示赞赏。
你不会喜欢我的回答,但这不是一个错误。
Primefaces 第 1642 期被标记为“无法修复”。
Primefaces Captcha 使用 Recaptcha,它不支持也不支持 Ajax 刷新。您必须执行整页回发才能使该组件正常工作。请记住,这还会影响在需要 Ajax 刷新面板的组件(例如选项卡视图或向导组件)中使用验证码的能力。
EDIT:另一方面,可以在<iframe>
达到类似的效果,但这似乎是一个肮脏的黑客行为。抱歉,我无法提供更多帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)