gpt4 book ai didi

javascript - preventDefualts 不允许在 Invisible ReCaptcha 中提交表单

转载 作者:行者123 更新时间:2023-11-30 21:05:15 24 4
gpt4 key购买 nike

最近我在尝试使用 Google 的隐形 ReCaptcha,所以我复制了与 Google 在其官方文档中提到的相同的示例;但是表单没有提交,我们无法进入下一页(表单操作页面)。

客户端代码段:

<html>
<head>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script>
function onSubmit(token) {
document.getElementById("myform").submit();
}
function validate(event) {
event.preventDefault();
if (!document.getElementById('field').value) {
alert("Please enter your name.");
} else {
grecaptcha.execute();
}
}
function onload() {
var element = document.getElementById('submit');
element.onclick = validate;
}
</script>
</head>
<body>
<form id='myform' method="post" action="test.php">
Name: (required) <input id="field" name="field">
<div id='recaptcha' class="g-recaptcha"
data-sitekey="mysitekeyxXX"
data-callback="onSubmit"
data-size="invisible"></div>
<button id='submit'>submit</button>
</form>
<script>onload();</script>
</body>
</html>

服务器片段(test.php):

var_dump($_POST['g-recaptcha-response']);

谷歌的验证过程还有其他代码,但它无论如何都不会进入此页面(操作页面)

最佳答案

我不确定您是否已按 1:1 复制了所有内容,或者 Google 是否更新了一些文档,但此功能与 reCAPTCHA 的功能有点不同 click here :

    function onSubmit(token) {
document.getElementById("myform").submit(); // <- this
}

它不会工作,因为你有一个 ID 为“提交”的按钮。

<button id='submit'>submit</button>

要使其正确提交,您必须将按钮的 ID 重命名为其他名称。
event.preventDefault() 也会阻止执行默认表单提交,因此您应该保持原样。解决此名称问题后,它将完美运行!

关于javascript - preventDefualts 不允许在 Invisible ReCaptcha 中提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46713883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com