HTML 属性:minlength

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

长度以 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",该值必须为空或至少为五个字符长才能有效。

html
<label for="fruit">Enter a fruit name that is at least 5 letters long</label>
<input type="text" minlength="5" id="fruit" />

我们可以使用伪类来根据值是否有效来设置元素的样式。只要值为空(null)或长度为五个或更多字符,该值就是有效的。*Lime* 无效,*lemon 有效*。

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

规范

规范
HTML
# attr-input-minlength
HTML
# attr-textarea-minlength

浏览器兼容性

html.elements.input.minlength

html.elements.textarea.minlength

另见