我有一个带有Google reCaptcha验证的表格。但是现在我必须单击两次提交按钮。我找不到原因。
我的表单是这样构建的(聪明):
<form method="post" id="form">
<input type="hidden" name="action" value="misdaden">
<table>
{foreach from=$misdaden item=item}
<tr>
<td class="coll">{$item['id']}</td>
<td class="coll">{$item['name']}</td>
<td class="coll">{$item['minmoney']}</td>
<td class="coll">{$item['maxmoney']}</td>
<td class="coll">{$item['difficulty']}</td>
<td class="coll">{$item['percentage']}%</td>
<td class="coll"><input type="radio" style="width:20px;" name="value" value={$item['id']} /></td>
</tr>
{/foreach}
</table>
<input type="submit" value="Misdaad plegen!" name="submit" class="submit" />
<!--input class="button good large" name="submit" type="submit" value="Pleeg misdaad!"-->
</form>
我的脚本是(JQuery):
$('#form').submit(function(e) {
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('6LesiMAUAAAAAAJ8G94kKbXxJj62_U2ajn-dzJzF', {action:'misdaden'})
.then(function(token) {
$('#form').prepend('<input type="hidden" name="token" value="'+ token +'">');
$('#form').unbind('submit').submit();
});
});
});
我可能缺少明显的东西,但是呢?
答案 0 :(得分:0)
在jquery脚本中,您不需要为执行验证码时绑定表单的提交事件处理程序。 只需提交表格,见下文
$(document).ready(function() {
grecaptcha.ready(function() {
grecaptcha.execute('6LesiMAUAAAAAAJ8G94kKbXxJj62_U2ajn-dzJzF', {action:'misdaden'})
.then(function(token) {
$('#form').prepend('<input type="hidden" name="token" value="'+ token +'">');
$('#form').submit();
});
});
});