【Web前端】表单

1.表单简介

  • 表单主要是让用户输入信息,用来收集用户信息,并且提交给后台做处理。
  • 表单包含了一些表单域元素,包括文本框、密码框、单选按钮、复选按钮、下拉列表等等例
  • 如:百度、邮箱登录

2.表单标签

2.1 form表签

  • 与用户进行交互,收集用户信息,form表单最外层的元素属性
  • action:表单提交的服务器处理的URL地址
  • method:表单提交到服务器的方法,主要用到get和post方法

2.2 GET和POST方法

  • GET请求和POST请求都是HTTP的请求方法
  • HTTP底层是TCP/IP。所以GET和POST的底层也是TCP/IP,都是TCP链接。
  • HTTP设定了不同的服务类别,有GET、POST、PUT、DELETE等等。HTTP要求当使用GET请求时,贴上GET标签,并且把传输的数据放在车顶部(URL中),以请求头方式传递。如果是POST请求,贴上POST标签,并且把传输的数据放在车厢里。
  • 区别1:URL可见性不同:get请求的参数url可见,而post请求的参数在url不可见。
  • get请求通过urI直接请求数据,因此数据信息可以在url地址中直接看到。post请求是将请求放在请求体中,用户无法直接看到。
  • 不同的浏览器和服务器不同。数据量太大对于浏览器端和服务器端处理比较麻烦,带来很大负担。
  • 大多数浏览器,通常都会对url长度有一个2k个字节的限制。大多数服务器会限制最多处理64k大小的url。
  • 区别2:get传送的数据比较小,有限制,通常是2KB,post传送的数据量比较大,一般被默认为不受限制。
  • 区别3:get请求因为参数和数据都是暴露在URL地址中,所以安全性比较低,post请求中,安全性较高,对于敏感数据,可以使用post
  • 区别4:get限制form表单的数据集是ASCII字符,而post支持较多字符集
  • 区别5:get请求产生一个TCP数据包,而post请求产生两个TCP数据包。
  • 区别6:在应用上,通常使用get从服务器上获取数据(查询),post通过是向服务器传送数据

2.3 元素标签

2.3.1 input标签

  • text 单行文本域
  • password 密码框,以密文显示
  • radio 单选按钮,一组单选按钮名字相同
  • checkbox 复选框
  • file 文件选择,用来实现上传的控件
  • button 普通按钮
  • submit 提交按钮
  • reset 重置按钮
  • hidden 隐藏表单域
  • image 用图片代替submit按钮
  • search 产生一个搜索意义的文本框
  • email 电子邮箱,要求格式必须是邮箱格式
  • url 网址url,要求格式必须是url地址格式
  • number 数字类型
  • tel 电话号码
  • color 颜色选择
  • range 滑动条
  • date 日期控件
  • time 时间控件
  • datetime 日期和时间控件,chrome和firefox不支持
  • datetime-local 日期和时间控件
  • month 月份选择控件
  • week 星期控件

2.3.2 input属性

  • name 为控件取名,方便后台程序进行值的读取
  • id 每个html控件,都可以有一个唯一的id
  • value:对于text、password、hidden等有文本输入的表单域对象,设置默认值;对于radio、checkbox用来向后台传递给定的值;对于reset、submit、button按钮,用来定义按钮上的文字
  • checked 用于设置单选或复选按钮初始时选中状态(radio、checkbox)
  • size 用于输入类型,设置显示的字符数(一般不使用)
  • maxlength 设置输入类型最大值
  • min 定义number类型最小值
  • max 定义number类型最大值
  • step 定义number类型的步长
  • placeholder 为输入类型生成一个文字提示,当内容为空时出现
  • readonly 设置输入类型为只读
  • disabled 禁止选择控件
  • required 要求控件必须有值,输入型必须要有值,选择型必须选中值
  • autocomplete 是否使用自动完成功能,默认是使用,关闭选择off
  • tabindex 定义按tab键的顺序
  • autofocus 定义光标自动聚集到指定控件
  • novalidate 取消表单验证效果
  • pattern 正则验证

2.3.3 其他标签

2.3.3.1 label标签

  • input元素有id,使用label标签的for属性,绑定对应的id,就可能实现,点击label,获取相应的控件点击。

2.3.3.2 下拉列表

  • 使用select标签,其中选项,使用option
  • 属性:
  • select标签属性:multiple:设置可以多选;size:列表每次展示选项个数
  • option标签属性:value:真正传入后台服务器的值;selected: 被标识的选项是默认选中项
  • optgroup:将option进行分组;label:分组名称

2.3.3.3 datalist标签

  • html5标签
  • 使用datalist,可以实现下拉选项,并能根据用户的输入,进行过滤选择,并且,如果在选择中没有用户需要的,用户可以自行输入值

2.3.3.4 文本区域标签

  • 使用textarea标签,cols属性设置列,rows属性设置行,通常使用css来控制宽度和高度。
  • 默认值写在起始标签和结束标签中间

2.3.3.5 域容器标签

  • fieldset:将一组控件组织在一起,使用一个方框套起来
  • 可以使用样式表进行整体设置
  • legend:域容器的标题
相关推荐
腾讯TNTWeb前端团队4 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰7 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪7 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪8 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy8 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom9 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom9 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom9 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom9 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom9 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试