【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:域容器的标题
相关推荐
鹏北海7 分钟前
多标签页登录状态同步:一个简单而有效的解决方案
前端·面试·架构
_AaronWong12 分钟前
基于 Vue 3 的屏幕音频捕获实现:从原理到实践
前端·vue.js·音视频开发
孟祥_成都20 分钟前
深入 Nestjs 底层概念(1):依赖注入和面向切面编程 AOP
前端·node.js·nestjs
let_code21 分钟前
CopilotKit-丝滑连接agent和应用-理论篇
前端·agent·ai编程
Apifox1 小时前
Apifox 11 月更新|AI 生成测试用例能力持续升级、JSON Body 自动补全、支持为响应组件添加描述和 Header
前端·后端·测试
木易士心1 小时前
深入剖析:按下 F5 后,浏览器前端究竟发生了什么?
前端·javascript
在掘金801101 小时前
vue3中使用medium-zoom
前端·vue.js
xump1 小时前
如何在DevTools选中调试一个实时交互才能显示的元素样式
前端·javascript·css
折翅嘀皇虫1 小时前
fastdds.type_propagation 详解
java·服务器·前端
Front_Yue1 小时前
深入探究跨域请求及其解决方案
前端·javascript