最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

html5的setCustomValidity的详细介绍

来源:动视网 责编:小采 时间:2020-11-27 15:10:02
文档

html5的setCustomValidity的详细介绍

html5的setCustomValidity的详细介绍:1. 默认提示html5丰富了表单验证,例如:<form> <input type=text required /> <input type=submit></form>如果text中没有输入内容,点击提交按钮,会提示请填写此字段。事件顺序如下:(1)submit按钮的click事件,
推荐度:
导读html5的setCustomValidity的详细介绍:1. 默认提示html5丰富了表单验证,例如:<form> <input type=text required /> <input type=submit></form>如果text中没有输入内容,点击提交按钮,会提示请填写此字段。事件顺序如下:(1)submit按钮的click事件,


1. 默认提示

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

<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的以下属性来设置和取消自定义提示:

badInput,customError,patternMismatch,rangeOverflow,rangeUnderflow,stepMismatch,tooLong,
typeMismatch,valid,valueMissing

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

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

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

例子:

<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>

或者:

$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提交数据。

例子:

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

 e.preventDefault();
},false);

文档

html5的setCustomValidity的详细介绍

html5的setCustomValidity的详细介绍:1. 默认提示html5丰富了表单验证,例如:<form> <input type=text required /> <input type=submit></form>如果text中没有输入内容,点击提交按钮,会提示请填写此字段。事件顺序如下:(1)submit按钮的click事件,
推荐度:
标签: html5 html html5的
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top