javascript - 通过 javascript 获取 reCaptcha 值?

标签 javascript php jquery

我已将 reCaptcha 添加到我的网站,当我在表单中正常使用它时,一切都很好,但现在当我尝试通过 JavaScript 或 jQuery 读取验证码值时,我遇到了问题。我有这个 HTML 代码,可以在我的页面上加载 reCaptcha。

<div align="center">
    <script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=mySecretkey321"></script>
    <noscript>
        <iframe src="http://www.google.com/recaptcha/api/noscript?k=mySecretkey321" height="300" width="500" frameborder="0"></iframe><br>
        <textarea id="rcf" name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
        <input type="hidden" id="rrf" name="recaptcha_response_field" value="manual_challenge">
    </noscript>
    <input type="button" value="Ok!" id="ok" class="btn btn-danger btn-lg"/>
</div>

当我填写验证码字段并单击按钮时,我想加载 recaptcha_response_fieldrecaptcha_challenge_field 的值,以便我可以通过 $.get() 提交它们;所以我想出了这段代码:

$("#ok").click(function() {
    var res,res2;
    var rcf = document.getElementsByName('recaptcha_challenge_field').value;
    var rrf = document.getElementsByName('recaptcha_response_field').value;
    var url = "go.php?rcf="+ rcf +"&rrf=" + rrf;
    alert(url);
    $.get( url, function( data ) {
      var n = data.indexOf("#");
      res = data.slice(0,n);
      res2 = data.slice(n+1);
    });
});

当我单击按钮时,我会收到一个带有以下值的警报框:

go.php?rcf=undefined&rrf=undefined

基本上我无法读取这些字段,并且我认为我读错了。文件 go.php 验证验证码我只需要将这两个验证码字段传递给它,这样它就可以完成检查验证码的所有后台工作。

我真的不知道如何实现这一点,我想有一个简单的解决方案,但我在任何地方都找不到它,所以我想询问社区。

最诚挚的问候!

最佳答案

document.getElementsByName 函数返回一个元素集合,正如名称所暗示的那样 - 它是元素(带有 s - 复数形式)。该集合没有定义 value 属性,这就是尝试访问它会返回 undefined 的原因。

如果您确定只有一个(不多也不少)具有这些名称的元素,您可以访问集合中的第一个索引(这是您想要的元素)并获取其值:

var rcf = document.getElementsByName('recaptcha_challenge_field')[0].value;
var rrf = document.getElementsByName('recaptcha_response_field')[0].value;

或者,您可以使用 jQuery(因为您已经加载它以将其用于 AJAX 调用)来获取值:

var rcf = $('[name="recaptcha_challenge_field"]').val();
var rrf = $('[name="recaptcha_response_field"]').val();

关于javascript - 通过 javascript 获取 reCaptcha 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25309091/

相关文章:

javascript - Chart.js - 切换图表的可见性

javascript - 无论先前的元素长度如何,如何将 anchor 对齐到中心

php - 在 www 文件夹中提供下载链接是否安全

javascript - ajax调用后自动显示弹出框

javascript - 在 $.post() 回调中更新数据属性值后未更改

jquery - 如何使用fnFilter获得精确匹配?

javascript - 如果变量未定义,有没有办法可以停止浏览器中的脚本?

javascript - 用于选择单选按钮的 HTML 下拉列表

php - Laravel 5.5 仅在需要字段时验证最小长度

php - 如果表单上出现错误,则在提交后显示下拉列表的多个选定值