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

时间:2014-12-15 06:32:11

标签: javascript jquery html html5 dom

我有以下代码

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

当关注此元素并显示验证气泡时,如何移除冒泡onkeyup或至少更改消息?

例如,在下面的演示用户提交表单并将所需的文件留空,然后在键入消息时出现泡沫空白并显示不同的消息

DEMO

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我不确定是否有任何方法,您可以使用<form action="" method="post" novalidate>属性关闭表单上的html5验证,但不存在字段级别设置灵活性。为此,您应该使用一些验证库

以下是您可以尝试的库