01、表单

表单是比较重要的HTML元素,块元素,主要作用是向服务端提交数据。结合表单元素input使用,通过内部的button按钮提交(type=”submit”)表单数据。

元素/属性描述值/备注
表单元素
action提交表单的目标(服务端)地址url
method提交数据的方式,就是数据传输的方式? get:通过URL提交数据[url]?uname=1&age=2
? post,通过HTTP表单数据提交,键值格式。
target提交数据时打开action url的方式_self:当前窗口(默认值);_blank:新窗口
 enctype编码类型(encode type),规定了form表单在发送到服务器时候编码方式,不常用。? application/x-www-form-urlencoded:编码所有字符(默认)
? multipart/form-data :混合类型, 表单中有文件上传时使用
? text/plain:纯文体,空格转换为 “+” 加号,不对特殊字符编码
 submit()提交表单数据,通过js代码调用

表单分组,默认样式:一个框便于表单样式管理的语义化元素
 formfrom的id,当

不在form中时
 disabled整个分组都不可用

作为

的标题,显示在框上
(legend /ˈledʒənd/ 铭文、图例)
    #form fieldset {        border: 1px solid skyblue;        padding: 20px 10px;        border-radius: 5px;        text-align: center;        margin: 10px 0px;    }    #form fieldset legend {        font-size: 1em;        border: 1px solid rgb(236, 175, 43);        border-radius: 1em;        padding: 3px 15px;    }    
登录

?注意:提交数据时参数名为表单元素的name,因此表单控件须设置name属性。

❓get、post区别:

GETPOST
提交方式数据在url的问号?后:url?key=value&key=...数据在请求体中
编码enctype只有appliacation-x-www-form-urlencoded支持多种
书签/历史可以加入收藏,历史记录、日志会保留数据不可收藏、不会保留数据
缓存/效率可以被浏览器缓存,效率(速度)更高不可缓存
数据类型/长度只允许 ASCII 字符,URL长度有限制(2048),不同浏览器不同。类型没有限制,支持二进制数据。长度(几乎)无限制
安全性安全性更低,数据在URL中容易暴露安全性稍高,不过传输过程也是明文的,不会在浏览记录、日志中存储
回退/刷新?无副作用(幂等),可重复访问有副作用,数据会被重新提交(不幂等),浏览器一般会提示用户数据会被重新提交
使用场景获取数据提交数据:添加、修改、删除

?因此

  • 数据有安全性要求的时候,建议用POST并且加密(HTTPS)。
  • 获取数据(如查询)的的时候,一般用GET;提交数据(添加、修改、删除)时一般用POST。

02、表单元素

表单元素单标签行内元素,主要用于输入各种类型数据。包含多个表单类型type:文本框、复选框、单选框、按钮等。

input.type

input.type/属性描述备注
text文本输入框(默认),单行文本,不支持换行
password密码输入框
radio单选框,相同name为一组互斥记得赋值value
checkbox多选框,相同name为一组。如选中多个值会提交多个key-value记得赋值value
number数字输入,step设置步长
hidden隐藏框/域,页面不可见,用于一些逻辑处理
button普通按钮,按钮显示value值,结合JavaScript事件使用
建议用
submit表单提交按钮,在form中有效,直接提交表单数据
reset表单重置按钮,重置表单的数据,form中有效。
image图片提交按钮,同submit,**src**设置图片,无图则显示altheight、width设置图片大小
file文件选择框,如多值则value为第一个值,js获取files取多个值capture媒体拍摄方式-移动端
 accept可接受文件类型,多个逗号隔开,image/png, video/*.jpg,.png,.doc
email电子邮箱,支持邮箱格式验证验证邮箱格式
range滑块数字,用 min 和 max 来设置值的范围,step设置步长list可设置刻度
search搜索框,和text差不多
tel电话号码,和text差不多,有些终端支持虚拟键盘不验证(不同地区格式不同)
urlURL地址,和text差不多验证url格式
color,IE?颜色输入控件
date,IE?日期输入,年月日
datetime-local,IE?日期时间输入,年月日、时分秒,Chrome/Opera /Edge支持yyyy-MM-ddThh:mm
month,IE?年月输入,输入年份或月份value="2018-05"
time,IE?时间控件,小时、分
week,IE?年和周数,用于输入以年和周数组成的日期,支持的不多

?注意

  • 一般浏览器对不支持的type,都默认降级为text
  • 文件选择框如通过表单提交,表单需设置属性enctype="multipart/form-data"设置表单数据编码为多种数据组合,同时设置提交方式为post,才可以上传文件(二进制)。

的常规属性

基础属性描述相关type值/备注
name控件名称(通用属性),表单中须赋值,会作为参数名
type表单控件类型详见上表
value的值,可设置默认值。
tabindex当前文档的 Tab 导航顺序中的位置
size宽度,文本框可显示的字符宽度,类似css的width字符数量
min/maxlength可输入字符数量,文本框可输入最少/大字符数量文本输入类
readonly只读,不可编辑,IE有光标显示true值可省略
disabled不可用,无光标值可省略
placeholder占位符/水印,用于输入提示,比较常用文本输入类
checked选中状态单选、多选值可省略
min/max最大/小值,数字、日期值的边界数字、日期大小边界验证
pattern,IE10模式(正则表达式),用于值的合法性检测文本输入类正则验证
required必填,hidden、image 或者按钮类型无效值可省略,必填验证
multiple是否允许多个值,逗号隔开email、file布尔值,值可省略
step步长,数字、日期数字、日期
list候选值:输入框的候选值列表,值,显示value大多数
autocomplete自动填充,设置浏览器的自动填充模式大多数
autofocus页面加载时自动聚焦布尔值,值可省略
inputmode值输入模式,虚拟键盘,text, tel, url, email, numeric文本输入类
form所属form,值为其id
formaction表单提交属性,还有formenctype、formmethod、formnovalidate、formtargetimage、submit
    .iform {        text-align: right;        display: grid;        grid-template-columns: 80px 200px 80px 200px;        gap: 10px 5px;    }    /* 重写radio的样式 */    .iform input[type="radio"] {        -webkit-appearance: none;        -moz-appearance: none;        appearance: none;        border-radius: 50%;        width: 20px;        height: 20px;        border: 3px solid #999;        transition: 0.2s all linear;        outline: none;        position: relative;    }    .iform input[type="radio"]:checked {        border: 6px solid #4A80FF;    }    .iform input:invalid {        border-color: red;    }    .iform input,.iform label {        height: 26px;        padding: 0 3px;        display: inline-block;        vertical-align: middle;    }    text:    password:    number:    radio:
checkbox:
file: email: range: search: tel: url: color: datetime-local month: time: week:

数据集合

数据集合元素,包含了一组元素,提供给文本类list属性)使用,作为可选值的数据集。

  • 文本、数字输入的候选值,包括text、number、email、url、tel、search等。
  • range的刻度。
    香蕉    火龙果    冬瓜        


03、


04、

是一个文本标签,最主要的使命是辅助表单元素聚焦,点击

属性描述
for关联的元素id
form的id,可以将放到form外面了,这就很自由了!

⭐还有一种简写的方式:用 label 元素把 input 元素包裹起来,以减少for- id 的使用。


05、