我正在使用Primefaces,但我不能使用他们的p:captcha组件,因为它无法通过Ajax呈现/更新。
因此,我正在尝试使用reCaptcha的Ajax Api通过使用Recaptcha.create动态地在窗体上创建它。这是代码:
Recaptcha.create(/*public_code*/,
'captchadiv', {
tabindex : 1,
theme : "red",
callback : Recaptcha.focus_response_field
});
已经创建了验证码,但它不会验证来自ajax按钮的操作,例如p:commandButton。我做错了什么?
答案 0 :(得分:0)
我正在使用Primefaces,但我无法使用他们的p:captcha组件,因为它无法通过Ajax呈现/更新。
假。 p:captcha
元素具有id
属性,因此可以使用AJAX更新 。它还有一个rendered
属性,可以设置为true
或false
,即使在运行时也是如此。
已经创建了验证码,但它不会验证来自ajax按钮的操作,例如p:commandButton。我做错了什么?
我猜你正在渲染的验证码元素没有与JSF / PrimeFaces集成。 ; - )
为什么不使用这样的PrimeFaces验证码元素:
<div id="captchaWrapper">
<p:captcha rendered="captchaBean.rendered"/>
</div>
<p:commandButton value="render" action="#{captchaBean.render}"
update="captchaWrapper"/>
并有这样的支持bean:
public class CaptchaBean
{
//Getter/setter omitted
private boolean rendered;
public void render()
{
rendered = true;
}
}