我试图从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来区分这两个按钮。在这里它似乎不适用于第二个按钮。如果我切换两行,它将使另一个按钮正确提交。
如果有人对此有所了解,我会感谢他的启发。
谢谢:)
答案 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>