如何自定义html5新类型表单错误信息

  HTML5 input元素新增了很多新类型,如number,tel,email,url等类型,如指定input的type为email,浏览器还会自动验证输入输入的有效性,不是有效的email地址浏览器会自动提示错误信息。如下图所示

email:<input type="email"/>

如何自定义html5新类型表单错误信息

图1

  错误的样式是浏览器自定义的,如果你想自定义错误控件的样式,可以使用css3的:invalid伪类

<style>
    input.email:invalid{box-shadow:none;border:solid 3px #f00;}
</style>
 email:<input type="email" class="email"/>

如何自定义html5新类型表单错误信息

图2

下面是一些和html5自定义错误信息相关的信息点

 

1)如何获取HTML5的输入控件是否验证通过。可以再onblur或者onkeyup(如email这种类型,是在key事件中验证的)事件中获取对象的validity属性(为一个json对象),包含如下的属性

如何自定义html5新类型表单错误信息

    email:<input type="email" class="email" onblur="console.log(this.validity)"/>

  其中valid指示是否验证成功,其他属性具体错误。

2)如何自定义错误提示信息内容。如上面图二所示,鼠标移动到控件上面提示的错误信息如何自定义,可以使用DOM对象的setCustomValidity方法设置错误,设置为空则控件验证是通过的。

如何自定义html5新类型表单错误信息

<style>
    input.email:invalid{box-shadow:none;border:solid 3px #f00;}
</style>
<form>
    email:<input type="email" class="email"  onblur="setMsg(this)"/>
    <script>
        function setMsg(o) {
            o.setCustomValidity('');//要先设置为空,要不setCustomValidity调用过一次设置为非空内后,下面的判断会一直未成立的,即使输入的数据时正确的
            if (!o.validity.valid) o.setCustomValidity('老大,你输入的内容不对哦!')
        }
    </script>

3)oninvalid事件。这个事件只有点击表单submit按钮时才会触发

<form>
    email:<input type="email" class="email"  oninvalid="alert('邮件地址有问题!')"/>
    <input type="submit" />
</form>

 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:如何自定义html5新类型表单错误信息

评论(0)Web开发网
阅读(320)喜欢(0)JavaScript/Ajax开发技巧