【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:域容器的标题
相关推荐
北海-cherish2 小时前
vue中的 watchEffect、watchAsyncEffect、watchPostEffect的区别
前端·javascript·vue.js
2501_915909063 小时前
HTML5 与 HTTPS,页面能力、必要性、常见问题与实战排查
前端·ios·小程序·https·uni-app·iphone·html5
white-persist4 小时前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
新中地GIS开发老师5 小时前
Cesium 军事标绘入门:用 Cesium-Plot-JS 快速实现标绘功能
前端·javascript·arcgis·cesium·gis开发·地理信息科学
Superxpang5 小时前
前端性能优化
前端·javascript·vue.js·性能优化
Rysxt_5 小时前
Element Plus 入门教程:从零开始构建 Vue 3 界面
前端·javascript·vue.js
隐含5 小时前
对于el-table中自定义表头中添加el-popover会弹出两个的解决方案,分别针对固定列和非固定列来隐藏最后一个浮框。
前端·javascript·vue.js
大鱼前端5 小时前
Turbopack vs Webpack vs Vite:前端构建工具三分天下,谁将胜出?
前端·webpack·turbopack
你的人类朋友5 小时前
先用js快速开发,后续引入ts是否是一个好的实践?
前端·javascript·后端