File tree Expand file tree Collapse file tree 1 file changed +28
-1
lines changed Expand file tree Collapse file tree 1 file changed +28
-1
lines changed Original file line number Diff line number Diff line change 85
85
- ` click() ` :模拟鼠标点击当前的` <input> ` 元素。
86
86
- ` setSelectionRange() ` :选中` <input> ` 元素内部的一段文本,但不会将焦点转移到选中的文本。该方法接受三个参数,第一个参数是开始的位置(从0开始),第二个参数是结束的位置(不包括该位置),第三个参数是可选的,表示选择的方向,有三个可能的值(` forward ` 、` backward ` 和默认值` none ` )。
87
87
- ` setRangeText() ` :新文本替换选中的文本。该方法接受四个参数,第一个参数是新文本,第二个参数是替换的开始位置,第三个参数是结束位置,第四个参数表示替换后的行为(可选),有四个可能的值:` select ` (选中新插入的文本)、` start ` (选中的开始位置移到插入的文本之前)、` end ` (选中的文本移到插入的文本之后)、` preserve ` (保留原先选中的位置,默认值)。
88
- - ` setCustomValidity() ` :该方法调用后,会在校验失败时以自定义的错误信息提示用户 。它的参数就是报错的提示信息。
88
+ - ` setCustomValidity() ` :该方法用于自定义校验失败时的报错信息 。它的参数就是报错的提示信息。注意,一旦设置了自定义报错信息,该字段就不会校验通过了,因此用户重新输入时,必须将自定义报错信息设为空字符串,请看下面的例子 。
89
89
- ` checkValidity() ` :返回一个布尔值,表示当前节点的校验结果。如果返回` false ` ,表示不满足校验要求,否则就是校验成功或不必校验。
90
90
- ` stepDown() ` :将当前` <input> ` 节点的值减少一个步长。该方法可以接受一个整数` n ` 作为参数,表示一次性减少` n ` 个步长,默认是` 1 ` 。有几种情况会抛错:当前` <input> ` 节点不适合递减或递增、当前节点没有` step ` 属性、` <input> ` 节点的值不能转为数字、递减之后的值小于` min ` 属性或大于` max ` 属性。
91
91
- ` stepUp() ` :将当前` <input> ` 节点的值增加一个步长。其他与` stepDown() ` 方法相同。
@@ -106,3 +106,30 @@ function SelectText() {
106
106
```
107
107
108
108
上面代码中,点击按钮以后,会选中` llo ` 三个字符。
109
+
110
+ 下面是` setCustomValidity() ` 的例子。
111
+
112
+ ``` javascript
113
+ /* HTML 代码如下
114
+ <form id="form">
115
+ <input id="field" type="text" pattern="[a-f,0-9]{4}" autocomplete=off>
116
+ </form>
117
+ */
118
+
119
+ const form = document .querySelector (' #form' );
120
+ const field = document .querySelector (' #field' );
121
+
122
+ form .addEventListener (' submit' , (e ) => {
123
+ e .preventDefault (); // 防止这个例子发出 POST 请求
124
+ });
125
+
126
+ field .oninvalid = (event ) => {
127
+ event .target .setCustomValidity (' 必须是一个 4 位十六进制数' );
128
+ }
129
+
130
+ field .oninput = (event ) => {
131
+ event .target .setCustomValidity (' ' );
132
+ }
133
+ ```
134
+
135
+ 上面代码中,输入框必须输入一个4位的十六进制数。如果不满足条件(比如输入` xxx ` ),按下回车键以后,就会提示自定义的报错信息。一旦自定义了报错信息,输入框就会一直处于校验失败状态,因此重新输入时,必须把自定义报错信息设为空字符串。另外,为了避免自动补全提示框遮住报错信息,必须将输入框的` autocomplete ` 属性关闭。
You can’t perform that action at this time.
0 commit comments