Bootstrap5 表单验证

Bootstrap 5 表单验证详解

Bootstrap 5 表单验证详解

小白也能懂的 Bootstrap 5 表单验证知识点汇总

什么是表单验证?

表单验证就是检查用户在表单中输入的内容是否符合要求。比如:

  • 邮箱格式是否正确
  • 密码是否达到安全要求
  • 必填项是否填写了内容
  • 手机号是否符合格式

Bootstrap 5 让表单验证变得非常简单,只需要添加一些CSS类就能搞定!

核心知识点
1
验证状态样式

Bootstrap 使用特殊的CSS类来控制验证状态的显示:

  • .is-valid – 验证通过时的样式(绿色边框)
  • .is-invalid – 验证失败时的样式(红色边框)
2
验证提示信息

需要搭配以下类来显示提示信息:

  • .valid-feedback – 验证通过时显示的提示信息(绿色)
  • .invalid-feedback – 验证失败时显示的提示信息(红色)
3
.was-validated 类

这个类通常加在 <form> 元素上,当用户尝试提交表单时添加,用来显示所有验证状态

4
HTML5 验证属性

Bootstrap 5 配合标准的HTML5验证属性使用:

  • required – 必填字段
  • pattern – 正则表达式验证
  • min/max – 最小值/最大值
  • minlength/maxlength – 最小/最大长度
小贴士: Bootstrap 5 不再依赖 jQuery,使用原生JavaScript实现验证功能,性能更好!
实战示例
用户名至少需要3个字符!
用户名可用!
请输入有效的电子邮箱地址!
密码至少需要6个字符!
年龄必须在18到100岁之间!
请输入有效的网址!
您必须同意服务条款才能继续!
代码解析:
<form class="needs-validation" novalidate>
  <div class="mb-3">
    <label for="username" class="form-label">用户名</label>
    // 添加 required 属性表示必填
    // minlength="3" 设置最小长度
    <input type="text" class="form-control" id="username" required minlength="3">
    
    // 验证失败时显示的信息
    <div class="invalid-feedback">
      用户名至少需要3个字符!
    </div>
    
    // 验证成功时显示的信息(可选)
    <div class="valid-feedback">
      用户名可用!
    </div>
  </div>
  
  // 提交按钮
  <button type="submit" class="btn btn-primary">提交表单</button>
</form>
注意事项:
  • 必须在 <form> 上添加 novalidate 属性禁用浏览器默认验证
  • 使用 needs-validation 类初始化表单验证
  • 验证提示信息必须放在输入框之后
常用验证类型
  • 必填验证

    添加 required 属性

    例如:用户名、邮箱等必须填写的字段
  • 长度验证

    使用 minlengthmaxlength 属性

    例如:密码至少6位,用户名最多20位
  • 格式验证

    使用 type=”email”type=”url”

    自动验证邮箱、网址格式
  • 数值范围验证

    使用 minmax 属性

    例如:年龄在18-100岁之间
  • 自定义模式验证

    使用 pattern 属性配合正则表达式

    例如:手机号验证、身份证号验证
高级技巧
自定义验证

使用JavaScript进行自定义验证逻辑:

// 获取表单元素
const form = document.getElementById('myForm');

// 自定义验证函数
function validatePassword() {
  const password = document.getElementById('password');
  if (password.value.length < 8) {
    password.setCustomValidity('密码至少需要8个字符');
  } else {
    password.setCustomValidity('');
  }
}

// 表单提交事件
form.addEventListener('submit', function (event) {
  if (!form.checkValidity()) {
    event.preventDefault();
    event.stopPropagation();
  }
  
  // 添加was-validated类显示验证结果
  form.classList.add('was-validated');
});
服务端验证:

Bootstrap 也可以显示服务端返回的验证结果:

<input class="form-control is-invalid">
<div class="invalid-feedback">
  服务器返回的错误信息
</div>
最佳实践
  • 优先使用HTML5内置验证属性
  • 为每个输入框提供清晰明确的错误提示
  • 必填项使用星号(*)标记
  • 在用户提交表单时统一显示所有错误
  • 实时验证可以提升用户体验
  • 重要表单添加服务端验证作为双重保障
  • 移动端注意错误提示的显示位置

Bootstrap 5 表单验证详解 © 2023 - 编程小白也能懂的实用指南

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部