BootStrap中的表单大全

BootStrap中的表单大全

BootStrap是目前使用最为广泛的前端框架之一,其中表单是网站开发中比较常用的组件之一。本文将对BootStrap中的表单进行详细讲解,包括表单组成、常用表单类型、表单验证等内容,帮助读者在BootStrap中更好地使用表单组件。

表单组成

在BootStrap中,一个表单必须包含以下几个组成部分:

  • form标签:定义表单,包裹整体表单内容;
  • input标签:包括表单输入框、单选框、复选框、文件上传等内容;
  • label标签:标签中的文字会和对应的input标签相关联;
  • button标签:提交表单的按钮。

一个基本的表单结构如下所示:

<form>
  <div class="form-group">
    <label for="username">用户名</label>
    <input type="text" class="form-control" id="username">
  </div>
  <div class="form-group">
    <label for="password">密码</label>
    <input type="password" class="form-control" id="password">
  </div>
  <button type="submit" class="btn btn-primary">提交</button>
</form>

常用表单类型

在BootStrap中,可以使用各种表单类型,包括文本框、单选框、复选框、下拉框、文件上传等。下面对常用表单类型进行详细讲解。

文本框

文本框是最常用的表单类型之一,BootStrap中的文本框包括普通文本框、文本域和密码框。可以通过以下代码创建一个文本框:

<input type="text" class="form-control" id="username" placeholder="请输入用户名">

其中class为form-control表示使用BootStrap的表单样式,id为username表示为文本框设置唯一标识符,placeholder为提交前在文本框内显示的带有灰色提示的文本。

[picture]

单选框和复选框

单选框和复选框是用来让用户选择一个或多个选项的表单类型,可以使用以下代码创建单选框和复选框:

<div class="form-check">
  <label class="form-check-label">
    <input type="radio" class="form-check-input" name="optionsRadios" id="optionsRadios1" value="option1" checked>
    选项1
  </label>
</div>
<div class="form-check">
  <label class="form-check-label">
    <input type="radio" class="form-check-input" name="optionsRadios" id="optionsRadios2" value="option2">
    选项2
  </label>
</div>
<div class="form-check">
  <label class="form-check-label">
    <input type="checkbox" class="form-check-input" name="option1" id="option1" value="option1" checked>
    选项1
  </label>
</div>
<div class="form-check">
  <label class="form-check-label">
    <input type="checkbox" class="form-check-input" name="option2" id="option2" value="option2">
    选项2
  </label>
</div>

单选框需要设置name来确定选项互斥关系,复选框需要设置不同的name来表示不同的选项。checked属性可以设置默认选中某个选项。

[picture]

下拉框

下拉框是一种方便用户选择的常用表单类型,可以使用以下代码创建一个下拉框:

<select class="form-control">
  <option value="option1">选项1</option>
  <option value="option2">选项2</option>
  <option value="option3">选项3</option>
</select>

其中option标签表示不同的选项,value属性表示选项的值,显示出来的是option标签之间的文本内容。

[picture]

文件上传

文件上传可以使用以下代码创建:

<div class="custom-file">
  <input type="file" class="custom-file-input" id="customFile">
  <label class="custom-file-label" for="customFile">选择文件</label>
</div>

在BootStrap中,使用class="custom-file-input"属性设置文件上传样式,label标签的for属性对应文件上传的控件id。

[picture]

表单验证

在表单中添加验证可以有效减少用户提交信息的错误和不规范,BootStrap为表单验证提供了自带的插件。下面演示一些表单验证的例子。

<form>
  <div class="form-group">
    <label for="username">用户名</label>
    <input type="text" class="form-control" id="username" required>
    <div class="invalid-feedback">用户名不能为空</div>
  </div>
  <div class="form-group">
    <label for="email">邮箱</label>
    <input type="email" class="form-control" id="email" required>
    <div class="invalid-feedback">邮箱格式不正确</div>
  </div>
  <div class="form-group">
    <label for="password_1">密码</label>
    <input type="password" class="form-control" id="password_1" minlength="6" required>
    <div class="invalid-feedback">密码不能少于6位</div>
  </div>
  <div class="form-group">
    <label for="password_2">确认密码</label>
    <input type="password" class="form-control" id="password_2" minlength="6" required>
    <div class="invalid-feedback">两次密码不一致</div>
  </div>
  <button type="submit" class="btn btn-primary">提交</button>
</form>

添加了required属性用于表示字段为必填项,invalid-feedback对应错误提示信息,minlength属性表示最小长度。

[picture]

还可以使用js代码控制表单验证:

// 表单验证
(function () {
  'use strict'

  // Fetch all the forms we want to apply custom Bootstrap validation styles to
  var forms = document.querySelectorAll('.needs-validation')

  // Loop over them and prevent submission
  Array.prototype.slice.call(forms)
    .forEach(function (form) {
      form.addEventListener('submit', function (event) {
        if (!form.checkValidity()) {
          event.preventDefault()
          event.stopPropagation()
        }

        form.classList.add('was-validated')
      }, false)
    })
})()

通过添加class为needs-validation,就可以在form提交的时候进行表单验证。

示例说明

示例一:注册页面

下面是一个简单的注册页面,包括文本框、单选框和密码框等表单类型,同时添加了表单验证来验证用户输入的信息。

<!DOCTYPE html>
<html>
<head>
  <title>注册</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <form class="needs-validation" novalidate>
      <div class="form-group">
        <label for="username">用户名</label>
        <input type="text" class="form-control" id="username" required>
        <div class="invalid-feedback">用户名不能为空</div>
      </div>
      <div class="form-group">
        <label for="email">邮箱</label>
        <input type="email" class="form-control" id="email" required>
        <div class="invalid-feedback">邮箱格式不正确</div>
      </div>
      <div class="form-group">
        <label>性别</label><br>
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="radio" name="gender" id="gender_male" value="male" required>
          <label class="form-check-label" for="gender_male">
            男
          </label>
        </div>
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="radio" name="gender" id="gender_female" value="female" required>
          <label class="form-check-label" for="gender_female">
            女
          </label>
        </div>
        <div class="invalid-feedback">请选择性别</div>
      </div>
      <div class="form-group">
        <label for="password_1">密码</label>
        <input type="password" class="form-control" id="password_1" minlength="6" required>
        <div class="invalid-feedback">密码不能少于6位</div>
      </div>
      <div class="form-group">
        <label for="password_2">确认密码</label>
        <input type="password" class="form-control" id="password_2" minlength="6" required>
        <div class="invalid-feedback">两次密码不一致</div>
      </div>
      <button type="submit" class="btn btn-primary">提交</button>
    </form>
  </div>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
  <script>
    (function () {
      'use strict'

      // Fetch all the forms we want to apply custom Bootstrap validation styles to
      var forms = document.querySelectorAll('.needs-validation')

      // Loop over them and prevent submission
      Array.prototype.slice.call(forms)
        .forEach(function (form) {
          form.addEventListener('submit', function (event) {
            if (!form.checkValidity()) {
              event.preventDefault()
              event.stopPropagation()
            }

            form.classList.add('was-validated')
          }, false)
        })
    })()
  </script>
</body>
</html>

[picture]

示例二:搜索页面

下面是一个简单的搜索页面,包括文本框、单选框和下拉框等表单类型。

<!DOCTYPE html>
<html>
<head>
  <title>搜索</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <form>
      <div class="form-group">
        <label for="input_key_words">关键词</label>
        <input type="text" class="form-control" id="input_key_words" placeholder="请输入关键词">
      </div>
      <div class="form-group">
        <label>类型</label><br>
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="radio" name="book_type" id="book_type_all" value="all" checked>
          <label class="form-check-label" for="book_type_all">
            全部
          </label>
        </div>
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="radio" name="book_type" id="book_type_novel" value="novel">
          <label class="form-check-label" for="book_type_novel">
            小说
          </label>
        </div>
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="radio" name="book_type" id="book_type_history" value="history">
          <label class="form-check-label" for="book_type_history">
            历史
          </label>
        </div>
      </div>
      <div class="form-group">
        <label for="select_sort">排序方式</label>
        <select class="form-control" id="select_sort">
          <option value="time">按时间</option>
          <option value="hot">按热度</option>
          <option value="rating">按评分</option>
        </select>
      </div>
      <button type="submit" class="btn btn-primary">搜索</button>
    </form>
  </div>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
</body>
</html>

[picture]

总结

在本文中,我们详细讲解了BootStrap中的表单大全,包括表单组成、常用表单类型和表单验证等内容。希望读者能够通过本文更好地使用BootStrap中的表单组件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:BootStrap中的表单大全 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • js获取触发事件元素在整个网页中的绝对坐标(示例代码)

    正常情况下,通过JavaScript获取元素坐标有两种方式:相对于视口的位置(即viewport)和相对于文档的位置。获取相对于整个文档的坐标,也被称为获取元素的绝对坐标。 方法一:使用element.getBoundingClientRect() element.getBoundingClientRect()可以返回元素的大小及其相对于视口的位置。该方法返…

    JavaScript 2023年6月10日
    00
  • JavaScript定时器原理详解

    JavaScript定时器原理详解 定时器基本概念 在JavaScript中,我们经常需要在一个间隔时间内循环执行某些任务或在某个时间点执行某些任务,这就需要用到定时器。 在JavaScript中,定时器有两种类型:setInterval和setTimeout,它们都是由浏览器提供的全局函数。 setInterval定时器可以按照一定的时间间隔执行代码,而s…

    JavaScript 2023年5月27日
    00
  • JavaScript获取上传文件相关信息示例详解

    让我详细讲解一下“JavaScript获取上传文件相关信息示例详解”。 1. 背景介绍 在前端开发中,有时需要上传文件,比如上传图片、上传文档等。上传文件时,我们需要获取文件的相关信息,比如文件名称、文件大小、文件类型等信息。 在本文中,我们将通过两条 JavaScript 示例详细讲解如何获取上传文件的相关信息。 2. 示例1:使用FileReader对象…

    JavaScript 2023年5月27日
    00
  • javascript实现获取cookie过期时间的变通方法

    获取cookie的过期时间是一个在JavaScript编程中常见的需求。通常来说,我们可以通过document.cookie来得到当前页面的所有cookie以及它们的值。但是,要获取cookie的过期时间却并不简单,因为HTTP cookie规范并没有定义任何获取cookie过期时间的API。不过,可以通过以下变通方法来解决这个问题。 方案一:设置cooki…

    JavaScript 2023年6月11日
    00
  • javascript中的有名函数和无名函数

    JavaScript中的函数可以分为有名函数和无名函数两种类型。有名函数为函数定义指定了一个名称,而无名函数则没有。 有名函数 函数定义 有名函数最基本的定义方式就是定义一个函数名,并编写函数体: function add(a, b) { return a + b; } 这是定义一个相加函数的示例,函数名为add,接受两个参数a和b,并返回a和b的和。 函数…

    JavaScript 2023年5月27日
    00
  • 详解JavaScript基础知识(JSON、Function对象、原型、引用类型)

    下面我来详细讲解“详解JavaScript基础知识(JSON、Function对象、原型、引用类型)”的完整攻略。 JSON 什么是 JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。它基于 JavaScript 对象结构,但是具有更严格的格式要求,在很多编程语言中也得到了支持。 JS…

    JavaScript 2023年5月27日
    00
  • 微信小程序的部署方法步骤

    当您准备好为您或您的客户构建微信小程序时,下一步是部署它。以下是微信小程序的部署方法步骤的完整攻略: 1. 注册小程序帐号 首先,在 微信公众平台 上注册一个小程序帐号。按照提示填写信息并完成注册流程。 2. 开发小程序代码 您可以使用 微信官方开发工具 开始创建和构建小程序。请按照教程进行设置和创建小程序代码。 3. 添加小程序版本 在微信小程序开发者工具…

    JavaScript 2023年6月10日
    00
  • 疯掉了,尽然有js写的操作系统

    关于“疯掉了,竟然有JS写的操作系统”,我可以提供以下攻略。 什么是“JS操作系统” “JS操作系统”实际上是基于浏览器的操作系统,使用前端技术进行开发,其核心思想是JavaScript虚拟机和Web浏览器的结合。在这种操作系统中,所有IED编写的HTML、CSS和JavaScript均可作为应用程序运行。 如何搭建“JS操作系统” 1. 安装Node.js…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部