ValidityState: tooLong 属性
ValidityState 接口中只读的 tooLong 属性指示用户编辑后的 <input> 或 <textarea> 元素的值是否超出了元素 maxlength 属性设定的最大代码单元长度。
值
如果 ValidityState 不符合约束,则为 true 的布尔值。
示例
字符计数过多的文本区域
以下示例检查了一个 textarea 元素 的有效性。使用 maxlength 属性添加了一个约束,因此 textarea 期望的最大字符数为 10。如果 textarea 中的字符过多(如下所示),该元素将无法通过约束验证,并将应用匹配 :invalid CSS 伪类的样式。
在编辑 textarea 时,浏览器不会允许用户添加会导致最大字符数约束验证失败的字符,因此一开始只允许删除字符。换行符会被规范化,并在最大长度计算中计为一个字符。
css
textarea:invalid {
outline: red solid 3px;
}
html
<pre id="log">Validation logged here...</pre>
<textarea name="story" id="userText" maxlength="10" rows="5">
It was a dark and
stormy night...
</textarea>
js
const userInput = document.getElementById("userText");
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText = text;
}
userInput.addEventListener("input", () => {
userInput.reportValidity();
if (userInput.validity.tooLong) {
log("Too many characters in the textarea.");
} else {
log("Input is valid…");
}
});
规范
| 规范 |
|---|
| HTML # dom-validitystate-toolong-dev |
浏览器兼容性
加载中…