【发布时间】: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