0

我一直在处理将 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();

在那里做了伎俩。

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

4

1 回答 1

0

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

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

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

于 2010-08-31T23:28:45.290 回答