html5的setCustomValidity的详细介绍


本文摘自PHP中文网,作者黄舟,侵删。

1. 默认提示

html5丰富了表单验证,例如:

1

2

3

<form>

    <input type=text required />

    <input type=submit></form>

如果text中没有输入内容,点击提交按钮,会提示“请填写此字段。”

事件顺序如下:
(1)submit按钮的click事件,若取消默认事件,则终止
(2)html5表单验证和提示,若表单验证不通过,则提示第一个不合法输入,并终止
(3)form表单的submit事件,若取消默认事件,则终止

注意:
用js触发form的submit事件,会直接进入第(3)步,不会进行html5表单验证。
所以,要想出现html5的验证提示,必须经过submit按钮。

2. 自定义提示

使用setCustomValidity设置了自定义提示后,
validity.customError就会变成true,则checkValidity总是会返回false。
而且,表单验证是根据checkValidity来决定是否提示的。

所以,应该使用validity的以下属性来设置和取消自定义提示:

1

2

badInput,customError,patternMismatch,rangeOverflow,rangeUnderflow,stepMismatch,tooLong,

typeMismatch,valid,valueMissing

注意:
以上属性值是只读的,手动修改是无效的。

其中,取消自定义提示的方式如下:

1

setCustomValidity('') setCustomValidity(null) setCustomValidity(undefined)

例子:

1

2

3

4

5

6

7

8

9

10

<form>

    <input id=text1 type=text required />

    <input id=submit1 type=submit></form><script>

    document.querySelector('#submit1').addEventListener('click',function(){       

    var $text1= document.querySelector('#text1');

 

        $text1.validity.valueMissing

            ?$text1.setCustomValidity('The value can\'t be empty.')

            : $text1.setCustomValidity('');

    },false);</script>

或者:

1

2

3

4

$text1.setCustomValidity((function(){   

if($text1.validity.valueMissing){      

 return 'The value can\'t be empty.';

    }    //不写return或者写“return;”表示“return undefined;”}()));

3. 验证成功后ajax提交

考虑到事件顺序,form的submit事件中只有在表单验证通过后才会触发。
所以,可以在form的submit事件中,通过取消默认行为,用ajax提交数据。

例子:

1

2

3

4

document.querySelector('#form1').addEventListener('submit',function(e){    //ajax

 

    e.preventDefault();

},false);

以上就是 html5的setCustomValidity的详细介绍的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

详解HTML5地理定位与第三方工具百度地图的应用

HTML5 frameset标签的替代方案是什么?frameset标签替代的解决办法

css中display: inline-block的用法解析

HTML5 canvas中绘制字体与图片以及图形模糊问题解决

h5的video标签操作摄像头

HTML5 audio标签怎么用?HTML5 自动播放实现代码实例

HTML5拖放关于api实现拖放排序的实例代码

HTML5移动框架有哪些

HTML5中一些可以优化的细节介绍

介绍几款引人注目的HTML5/jquery动画插件详情

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...