【问题标题】:Using reCaptcha, Lightbox, and Drupal's Form API together一起使用 reCaptcha、Lightbox 和 Drupal 的 Form API
【发布时间】:2010-08-31 22:41:43
【问题描述】:

我一直在处理将 Drupal 表单放入 Lightbox2 灯箱的问题。

也许是错误的,我在提交表单之前使用了 javascript 中的所有验证(我无法让正常验证返回灯箱内的表单)。

无论如何,我正在使用:

  $form['#attributes']['onsubmit'] = 'return Drupal.mymodule.validateMailForm();';

而且效果很好。

接下来是 ReCaptcha 测试。

if (validation == 'failed') {
  return false;
}
else { 
  return Drupal.mymodule.validateCaptcha();
}

当我最终让recaptcha 停止提交表单而不管recaptcha 结果如何(我将函数换成'return false')时,我在我的validateCaption() 函数中发现了这一点:

challengeField = $("input#recaptcha_challenge_field").val();
responseField = $("input#recaptcha_response_field").val();
console.log(challengeField);
console.log(responseField);

这两个变量都是“未定义的”。嗯。

所以有两个较小的问题(“为什么 jquery 不获取值?”和“onsubmit 属性能否说服提交函数在执行其业务时等待?”)和一个大问题:

有没有人设法将 Drupal 表单、灯箱和 Recaptcha 结合起来?

编辑: 问题的第二部分——jquery 没有获取值——是因为我在灯箱中使用了 iframe(否则我无法让它保持不变)。将上面的选择替换为:

challengeField = $('#iframeID').contents().find('input#recaptcha_challenge_field').val();

在那里成功了。

如果我能进一步破解这个问题,我会报告回来......

【问题讨论】:

    标签: jquery drupal lightbox recaptcha drupal-fapi


    【解决方案1】:

    如果您使用 jQuery 来获取值,那么我假设您需要 jQuery 来处理提交事件,如下所示:

    $("form#attributes").submit(function () { ... });
    

    我不能 100% 确定我的上述假设。有人愿意详细说明吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多