Bootstrap4 表单组件

表单的重要性

表单是网站与用户交互的重要组件,用于收集用户输入、处理数据和完成各种任务。Bootstrap 4 提供了丰富的表单控件和样式,帮助开发者快速创建专业的表单界面。

基础表单控件

Bootstrap 4 提供了多种表单控件,包括文本输入、选择框、复选框、单选按钮等。

文本输入控件
我们绝不会与他人共享您的邮箱地址。
HTML 代码:
<form>
  <div class="form-group">
    <label for="exampleInputEmail1">邮箱地址</label>
    <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="输入邮箱">
    <small id="emailHelp" class="form-text text-muted">我们绝不会与他人共享您的邮箱地址。</small>
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">密码</label>
    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="密码">
  </div>
  <div class="form-group">
    <label for="exampleFormControlTextarea1">示例文本区域</label>
    <textarea class="form-control" id="exampleFormControlTextarea1" rows="3" placeholder="输入多行文本"></textarea>
  </div>
</form>
选择控件
HTML 代码:
<div class="form-group">
  <label for="exampleFormControlSelect1">示例选择框</label>
  <select class="form-control" id="exampleFormControlSelect1">
    <option>选项 1</option>
    <option>选项 2</option>
    <option>选项 3</option>
    <option>选项 4</option>
    <option>选项 5</option>
  </select>
</div>

<div class="form-group">
  <label for="exampleFormControlSelect2">多选示例</label>
  <select multiple class="form-control" id="exampleFormControlSelect2">
    <option>选项 1</option>
    <option>选项 2</option>
    <option>选项 3</option>
    <option>选项 4</option>
    <option>选项 5</option>
  </select>
</div>

复选框和单选按钮

Bootstrap 4 提供了多种样式的复选框和单选按钮,包括自定义样式。

默认样式
HTML 代码:
<!-- 默认复选框 -->
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
  <label class="form-check-label" for="defaultCheck1">
    默认复选框
  </label>
</div>

<!-- 默认单选按钮 -->
<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
  <label class="form-check-label" for="exampleRadios1">
    默认单选按钮
  </label>
</div>
自定义样式
HTML 代码:
<!-- 自定义复选框 -->
<div class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" id="customCheck1">
  <label class="custom-control-label" for="customCheck1">自定义复选框</label>
</div>

<!-- 自定义单选按钮 -->
<div class="custom-control custom-radio">
  <input type="radio" id="customRadio1" name="customRadio" class="custom-control-input">
  <label class="custom-control-label" for="customRadio1">打开此自定义单选按钮</label>
</div>

<!-- 自定义开关 -->
<div class="custom-control custom-switch">
  <input type="checkbox" class="custom-control-input" id="customSwitch1">
  <label class="custom-control-label" for="customSwitch1">切换此开关元素</label>
</div>

表单布局

Bootstrap 4 提供了多种表单布局选项,包括水平表单、内联表单和网格布局。

水平表单
单选按钮
复选框
HTML 代码:
<form>
  <div class="form-group row">
    <label for="inputEmail3" class="col-sm-2 col-form-label">邮箱</label>
    <div class="col-sm-10">
      <input type="email" class="form-control" id="inputEmail3" placeholder="邮箱">
    </div>
  </div>
  <div class="form-group row">
    <label for="inputPassword3" class="col-sm-2 col-form-label">密码</label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword3" placeholder="密码">
    </div>
  </div>
  <!-- 其他表单字段 -->
</form>

表单验证

Bootstrap 4 提供了强大的表单验证功能,包括浏览器默认验证和自定义验证样式。

浏览器默认验证
看起来不错!
看起来不错!
请提供有效的城市。
请提供有效的省份。
请提供有效的邮编。
您必须同意才能提交。
HTML 代码:
<form class="needs-validation" novalidate>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationCustom01">名字</label>
      <input type="text" class="form-control" id="validationCustom01" value="Mark" required>
      <div class="valid-feedback">
        看起来不错!
      </div>
    </div>
    <div class="col-md-6 mb-3">
      <label for="validationCustom02">姓氏</label>
      <input type="text" class="form-control" id="validationCustom02" value="Otto" required>
      <div class="valid-feedback">
        看起来不错!
      </div>
    </div>
  </div>
  <!-- 其他表单字段 -->
</form>
JavaScript 代码:
// 表单验证示例
(function() {
  'use strict';
  window.addEventListener('load', function() {
    var forms = document.getElementsByClassName('needs-validation');
    var validation = Array.prototype.filter.call(forms, function(form) {
      form.addEventListener('submit', function(event) {
        if (form.checkValidity() === false) {
          event.preventDefault();
          event.stopPropagation();
        }
        form.classList.add('was-validated');
      }, false);
    });
  }, false);
})();

输入组

输入组允许您在输入框前后添加文本、按钮或其他元素。

输入组示例
https://example.com/users/
上传
HTML 代码:
<!-- 带前置文本的输入组 -->
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-text" id="basic-addon3">https://example.com/users/</span>
  </div>
  <input type="text" class="form-control" id="basic-url" aria-describedby="basic-addon3">
</div>

<!-- 文件上传输入组 -->
<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-text">上传</span>
  </div>
  <div class="custom-file">
    <input type="file" class="custom-file-input" id="inputGroupFile01">
    <label class="custom-file-label" for="inputGroupFile01">选择文件</label>
  </div>
</div>

最佳实践

创建表单时,遵循以下最佳实践可以提升用户体验和可访问性。

表单设计最佳实践
  • 清晰的标签 - 为每个表单控件提供清晰、简明的标签
  • 适当的占位符 - 使用占位符文本提供输入示例或指导
  • 合理的验证 - 提供及时、清晰的验证反馈
  • 响应式设计 - 确保表单在不同设备上都能良好显示
  • 可访问性 - 使用适当的ARIA标签和语义化HTML
  • 简洁明了 - 只收集必要的信息,避免冗长的表单

学习完成!

恭喜!您已经掌握了Bootstrap 4表单组件的使用方法。表单是网站与用户交互的重要组件,合理使用可以大大提升用户体验。

继续学习下一章:Bootstrap 4 组件