使用相同形式的两个按钮进行隐形重新抓取

时间:2017-10-17 20:22:53

标签: forms button recaptcha invisible

我试图从Google实施新的隐形回收。 它完美地工作,但我的表单总是有两个提交按钮,输入的内容不同。

我尝试在我的表单中添加另一个,但谷歌只识别代码中的第一个。

我无法想到任何会阻止其他按钮正常工作的原因。这是我尝试过的一个简单示例:

<form action="page.php" method="POST">
<input type="text" value="textfield"/><br/>
<button class="g-recaptcha" data-sitekey="mysitekey" data-callback='onSubmit' value="anaction">An action</button>
<button class="g-recaptcha" data-sitekey="mysitekey" data-callback='onSubmit' value="anotheraction">Another action</button>
</form>

我通常通过在POST值上设置isset来区分这两个按钮。在这里它似乎不适用于第二个按钮。如果我切换两行,它将使另一个按钮正确提交。

如果有人对此有所了解,我会感谢他的启发。

谢谢:)

2 个答案:

答案 0 :(得分:1)

是的我创建了一个函数sendData,如下所示:

<script type="text/javascript">

function sendData(){
    var test = $("#test").val();

    if(test != ""){
        $.post( "page.php",
            { 'g-recaptcha-response': grecaptcha.getResponse(), 'test' : test})
                .done(function( data ) {

                   console.log(data);
               }
        );
    }else{
        console.log(data);
    }

    grecaptcha.reset(); //important

}

</script>

答案 1 :(得分:0)

我有同样的问题,我修改如下:

<button type="submit" class="g-recaptcha"
                id="captcha1"
                data-sitekey="YOUR_SECRETKEY"
                data-callback="sendData">button</button>

<button type="submit" class="g-recaptcha"
                id="captcha2"
                data-sitekey="YOUR_SECRETKEY"
                data-callback="sendData">button</button>

<script type="text/javascript">

$( document ).ready(function() {
    $(".g-recaptcha").each(function() {
        var object = $(this);
        grecaptcha.render(object.attr("id"), {
            "sitekey" : "YOUR_SITEKEY",
            "callback" : function(token) {
                object.parents('form').find(".g-recaptcha-response").val(token);
                object.parents('form').submit();
            }
        });
    });
  }
);

</script>