一起使用reCaptcha,Lightbox和Drupal的Form API

时间:2010-08-31 22:41:44

标签: jquery drupal lightbox recaptcha drupal-fapi

我一直在讨论将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);

两个变量都是'未定义'。 HMM。

所以有两个较小的问题('为什么不是jquery获取值?'和'onsubmit属性可以说服提交函数在它开展业务时等待吗?')和一个大问题:

有没有人设法结合Drupal表格,灯箱和Recaptcha?

修改 问题的第二部分--jquery没有拿起值 - 是因为我在灯箱内使用了iframe(我不能让它保持不变)。用以下内容替换上面的选择:

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

在那里做了伎俩。

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

1 个答案:

答案 0 :(得分:0)

如果您正在使用jQuery来捕获值,那么我认为您需要jQuery来处理提交事件,如下所示:

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

我对上述假设并不是100%肯定。有人在意吗?