首页 > 解决方案 > 用户通过验证后删除 reCaptcha 的 HTML5 自定义错误消息

问题描述

我正在尝试以这个答案为基础:https ://stackoverflow.com/a/37048027

答案有效,但我想输入自定义 HTML5 验证错误消息,因此我将 javascript 扩展为:

 window.onload = function() {
    var $recaptcha = document.querySelector('#g-recaptcha-response');
    if($recaptcha) {
        $recaptcha.setAttribute("required", "required");
        $recaptcha.setAttribute("oninvalid", "this.setCustomValidity('Please fill in the reCAPTCHA field.')");
        $recaptcha.setAttribute("oninput", "this.setCustomValidity('')");
    }
};

问题是如果验证错误显示一次,它总是在之后显示并且永远不会消失。我尝试添加 oninput、onvalid 和 onchange,但在初始显示后我似乎无法让错误消息消失。

标签: javascripthtmlrecaptcha

解决方案


您可以根据规范通过添加novalidate到元素来禁用 HTML5 表单验证。form

例如

<form action="..." onsubmit="check_if_capcha_is_filled" novalidate>

推荐阅读