required属性用于声明表单控件为必填项,浏览器自动校验并阻止空提交;支持text、email、date等类型,但hidden、disabled字段无效;仅客户端校验,须配合服务端验证。

在HTML中,required 属性用于声明一个表单控件(如 <input>、<select></select>、<textarea></textarea>)为必填项。浏览器会在用户提交表单前自动校验,若该字段为空,会阻止提交并提示用户填写。
required 属性的基本用法
只需在支持的输入标签中添加 required 属性(无需赋值),浏览器即启用必填校验:
<input type="text" name="username" required><input type="email" name="email" required><textarea name="message" required></textarea>-
<select name="category" required><option value="">请选择</option> <option value="tech">技术</option></select>(注意:默认选项值应为空字符串,否则可能绕过校验)
哪些 input 类型支持 required
并非所有 type 都有效。以下类型可配合 required 正常工作:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
-
text、search、tel、url、email、password -
date、month、week、time、datetime-local -
number、range(但注意:range默认有值,需配合min/max设计初始状态) -
checkbox和radio也支持,但逻辑不同:checkbox 要求勾选;radio 组要求至少一个被选中(需同名且至少一个带required)
注意事项和常见问题
required 是客户端校验,仅作用户体验优化,不能替代服务端验证:
- 空格或制表符会被视为“非空”,建议结合 JavaScript 去除首尾空白后二次判断
- 隐藏域(
type="hidden")加required无效,浏览器不渲染也不校验 - 禁用(
disabled)或只读(readonly)的字段即使有required也不会触发校验 - 自定义样式提示可通过
:valid/:invalid伪类控制,例如:input:invalid { border: 2px solid #f00; }
与 JavaScript 配合增强体验
可以监听 invalid 事件做自定义提示,或用 checkValidity() 主动校验:
document.querySelector('input[required]').addEventListener('invalid', e => { e.target.setCustomValidity('此项不能为空'); });- 提交前手动检查:
if (!form.checkValidity()) { form.reportValidity(); } - 注意:调用
setCustomValidity('')可清除自定义错误,恢复默认校验
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










