javascript - 仅在表单提交时显示 HTML5 验证

标签 javascript jquery html dom

我有下面的代码

 <input 
    required 
    pattern="[0-9]{5,10}"
    oninput="setCustomValidity('')" 
    oninvalid="setCustomValidity('Type something')" 
    />

当此元素获得焦点并且显示验证气泡时,如何删除气泡 onkeyup 或至少更改消息?

例如,在下面的演示中,用户提交表单并将必填字段留空,然后在输入消息气泡空白时显示不同的消息

DEMO

最佳答案

好吧,我想我找到了解决方案 为了继续显示我想要的消息,我这样做

if(typeof elm.validity !=='undefined')
    {
        if(typeof msg !=='undefined' && msg!='')
        {
            for(i in elm.validity)
            {
                if (elm.validity[i] === true && i !=='valid' )
                {
                    elm.setCustomValidity(msg);
                    return true;
                }else
                {
                    elm.setCustomValidity('');

                }
            }
        }
    }

为了不让焦点空白,我只需这样做:

$(elm).blur();$(elm).focus();

我将在这里发布完整的示例:

DEMO

关于javascript - 仅在表单提交时显示 HTML5 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27478537/

相关文章:

javascript - 如果它包含使用 JavaScript 的特定单词,如何关闭浏览器的选项卡?

javascript - IE8 jQuery 提交不适用于表单

javascript - 放置在 head 标记中时 Jquery 代码不起作用

html - 滚动时盒子阴影不会停留在原地

html - "display: table-cell"子项的 100% 高度

python - 如何在 BeautifulSoup 中捕获内部文本以及内部标签

javascript - 使用 Google Chart API 强制注释出现在堆叠条形图中

javascript - 获取相同级别的值元素?

jquery - 使用 jQuery 遍历 HTML 复选框

javascript - 通过单击另一个类启用/禁用特定类