html5的setCustomValidity的详细介绍

黄舟
풀어 주다: 2017-03-31 13:26:18
원래의
6014명이 탐색했습니다.

1. 默认提示

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

로그인 후 복사

如果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)
로그인 후 복사

例子:

로그인 후 복사

或者:

$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的详细介绍의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!