【发布时间】:2017-05-17 09:51:55
【问题描述】:
通常,HTML5 表单验证在submit 事件之前运行。
有了这个
<form id="myForm">
<input type="text" name="foo" required />
<button type="submit"> Submit </button>
</form>
<script>
$("#myForm").on('submit',function(){
console.log("I'm entering the submit event handler");
});
</script>
如果输入字段为空,则提交事件处理程序不会运行。
仅当 HTML5 验证(在本例中为 required 属性)通过时才会触发。
我希望验证码也能在 HTML5 验证之后运行;如果稍后我警告他缺少字段,为什么我要惹恼用户编译验证码? 首先我应该强迫用户以正确的方式做所有事情,然后确保它是人类而不是机器人,恕我直言。
显然,reCaptcha 在它附加的表单上做了一些事情,删除了 HTML5 验证功能。
例如,使用最新的Invisible reCaptcha:
<form id="myForm">
<input type="text" name="foo" required />
<button type="submit"
class="g-recaptcha"
data-sitekey="your_site_key"
data-callback='myCallback'> Submit </button>
</form>
<script>
function myCallback(token){
$("#myForm").submit();
}
$("#myForm").on('submit',function(){
console.log("I'm entering the submit event handler");
});
</script>
表单将与空字段一起提交,而不通知用户其义务。
关于它为什么会这样的任何线索?有没有办法让 reCaptcha 在控制之前让 HTML5 表单验证运行?
【问题讨论】:
标签: javascript html validation recaptcha