0

我正在尝试实施<p:captcha><p:wizard>PrimeFaces。我发现只有这个帖子有类似的问题,当向导中的验证码会在无效输入时消失。建议的解决方案对我不起作用。

主要问题:是否可以通过某种适当的方式将验证码插入 PrimeFaces 向导?

感谢您的回复!

4

1 回答 1

1

我没有想出一个合适的解决方案(向导选项卡的 AJAX 更新会阻止重新加载 Recaptcha 控件的 iframe),但我创建了一个简单的解决方法:

  1. 位置<p:captcha>之外<p:wizard>
  2. 绝对定位验证码 iframe,使其在向导内移动
  3. 用 CSS 隐藏它
  4. flowListener在相应的向导选项卡上取消隐藏方法内的验证码:

例如

public String onFlowProcess(FlowEvent event) {  

    RequestContext context = RequestContext.getCurrentInstance();

    if ("confirm".equals(event.getNewStep())) {
        context.execute("jQuery(document.getElementById('register:captchaDiv')).show()");
    } else {
        context.execute("jQuery(document.getElementById('register:captchaDiv')).hide()");
    }

    return event.getNewStep();  
}
于 2013-05-19T13:09:54.273 回答