此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

HTML 属性:minlength

minlength 属性定义了用户可以在 <input><textarea> 中输入的字符串长度的最小值。该属性的值必须是非负整数。

字符串长度是以 UTF-16 码元为单位进行计算的,通常(对大多数文本而言)等同于字符个数。如果未指定 minlength,或指定了无效值,则输入将没有最小长度限制。该值必须小于或等于 maxlength 的值,否则该值将永远无效,因为不可能同时满足这两个条件。

如果字段文本值的长度小于 minlength 的 UTF-16 码元长度,输入将无法通过约束验证,validityState.tooShort 将返回 true。只有当用户更改值时,才会应用限制验证。一旦提交失败,某些浏览器会显示错误信息,说明所需的最小长度和当前长度。

minlength 不意味着输入为 required;只有当用户输入了一个值时,输入才会违反 minlength 约束。如果输入不是 required 的,即使设置了 minlength,也可以提交空字符串。

尝试一下

<label for="name">Product name:</label> <input id="name" name="name" type="text" value="Shampoo" minlength="3" maxlength="20" required /> <label for="description">Product description:</label> <textarea id="description" name="description" minlength="10" maxlength="40" required></textarea> 
label { display: block; margin-top: 1em; } input:valid, textarea:valid { background-color: palegreen; } 

示例

通过指定 minlength="5",值要么为空,要么至少为 5 个字符时才为有效。

html
<label for="fruit">输入长度至少为 5 个字母的水果名称</label> <input type="text" minlength="5" id="fruit" /> 

我们可以使用伪类,根据值是否有效来设计元素样式。只要值为空或其长度大于等于 5,该值就是有效的。如 Lime 是无效的,而 lemon 是有效的。

css
input { border: 2px solid currentcolor; } input:invalid { border: 2px dashed red; } input:invalid:focus { background-image: linear-gradient(pink, lightgreen); } 

规范

Specification
HTML
# attr-input-minlength
HTML
# attr-textarea-minlength

浏览器兼容性

html.elements.input.minlength

html.elements.textarea.minlength

参见