我一直在处理将 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();
在那里做了伎俩。
如果我能进一步破解这个,我会报告回来......