通常情况下,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>
Run Code Online (Sandbox Code Playgroud)
如果输入字段为空,则提交事件处理程序不会运行.只有在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>
Run Code Online (Sandbox Code Playgroud)
表格将与空字段一起提交,而不会通知用户其强制性.
有关它为何如此行事的任何线索?有没有办法可以指示reCaptcha在控制之前运行HTML5表单验证?