HTML5 之 Form 标签
概述
form 是块级双标签,用于指定一个表单区域,并向服务器提交信息。
属性
常用属性
action
:指定表单提交的URL
,表单内提交按钮的formaction
属性会覆盖此属性enctype
:指定表单的数据编码方式,表单内提交按钮的formenctype
属性会覆盖此属性method
:指定表单的请求方式,表单内提交按钮的formmethod
属性会覆盖此属性。另外若表单在dialog
元素中,指定method
为dialog
将在提交时关闭模态框,详细参考target
:表示表单提交时于何处响应,表单内提交按钮的formtarget
属性会覆盖此属性novalidate
:指定后表单提交时不用验证数据,表单内提交按钮的formnovalidate
属性会覆盖此属性,关于表单内提交按钮覆盖情况,详细参考
accept
指定表单内的上传控件可接受的文件类型(MIME 类型),可指定多个。注意几乎所有的浏览器都不支持,此属性已在HTML5
中被移除不再使用,替代方式则是上传控件单独指定accept
属性。
<form action="" method="post" accept="image/png, image/gif"><input type="file"><button type="submit">提交</button>
</form>
如下为模拟呈现。
accept-charset
规定服务器以何种字符集处理表单数据,浏览器中每种内容类型的默认值通常是正确的,所以一般不用设置。
常用值包括如下。
UTF-8
:unicode
字符编码ISO-8859-1
:拉丁字母表的字符编码gb2312
:简体中文字符集
<form action="" method="post" accept-charset="UTF-8, ISO-8859-1">...
</form>
autocapitalize
Safari
浏览器独有的非标准属性,在表单的后代控件中,输入文本时,此属性可控制文本值的首字母是否大写等其它样式。
可选值包括如下。
none
:禁用首字母大写sentences
:对每句文本首字母大写words
:每个单词首字母大写characters
:大写所有字母
<form action="" method="post" autocapitalize="words">...
</form>
autocomplete
输入框是否自动补全,默认值为on
(启用自动补全),off
(禁用)。
<form action="" method="post" autocomplete="on"><input type="text" name="username"><br><button type="submit">提交</button>
</form>
注意输入控件需指定name
属性,浏览器会根据此属性,查找出此属性之前输入并提交过的值。若不指定name
属性,此属性将不生效。
方法
checkValidity
用于返回表单或者表单元素是否验证通过,返回值为布尔值。
绝大多数浏览器支持,IE9
及以下浏览器不支持。
<form action=""><input type="input" required><button type="button">提交</button>
</form>
<script>const form = document.querySelector('form')const input = document.querySelector('input')const btn = document.querySelector('button')btn.addEventListener('click', () => {console.log('input:', form.checkValidity())console.log('form:', form.checkValidity())})
</script>
reportValidity
验证表单或者表单元素并且触发浏览器的内置验证提示交互,返回值为布尔值,IE11
及以下浏览器不支持。
<form action=""><input type="input" required><button type="button">提交</button>
</form>
<script>const form = document.querySelector('form')const btn = document.querySelector('button')btn.addEventListener('click', function () {console.log('form:', form.reportValidity())})
</script>
setCustomValidity
自定义表单元素的提示文字,IE9
及以下浏览器不支持。
const input = document.querySelector('input')input.setCustomValidity('请输入文字')
属性
validity
返回表单元素的各种验证状态,返回结果为 ValidityState 对象。
IE9
及以下浏览器不支持。
如下为Chrome
浏览器包含的只读属性和属性值。
const input = document.querySelector('input')console.log(input.validity)
badInput
:输入框的值浏览器无法转换。例如number
类型输入框输入3.14-2
,此时返回true
,注意IE
浏览器不支持此属性customError
:元素是否调用setCustomValidity
方法自定义验证规则patternMismatch
:输入框的值与指定的pattern
正则不匹配返回true
(可用:invalid
伪类修改样式),否则为false
input {outline: none;
}input:valid {border: 1px solid #409eff;
}input:invalid {border: 1px solid #f56c6c;
}<form><input type="text" pattern="[a-z]{5}" /><br><button type="button">提交</button>
</form>
<script>const input = document.querySelector('input')const btn = document.querySelector('button')btn.addEventListener('click', () => {console.log('patternMismatch:', input.validity.patternMismatch)})
</script>
如下为配合:invalid
伪类实现的输入验证。
rangeOverflow
:与元素max
属性规定的最大值比较,超过返回true
,否则为false
。例如number
类型输入框的属性max="5"
,输入值为8
则返回true
(可用:out-of-range
或:invalid
伪类修改样式)rangeUnderflow
:与元素min
属性规定的最小值比较,小于返回true
,否则为false
,为true
时也可用:out-of-range
或:invalid
伪类修改样式stepMismatch
:输入框的值与step
属性值不匹配时返回true
,或者说输入框的值无法整除step
。例如number
类型输入框的属性step="30"
,输入值为-60
、-30
、0
、30
、60
等均返回false
,而非30
倍数均返回true
(也可用:invalid
伪类修改样式 )tooLong
:输入内容长度大于元素maxlength
时返回true
,否则为false
,为true
时也可用:invalid
伪类修改样式
input:invalid {outline: none;border: 1px solid #f56c6c;
}<input type="text" maxlength="5" />
tooShort
:输入内容长度小于元素minlength
时返回true
,否则为false
,为true
时也可用:invalid
伪类修改样式,注意IE
浏览器不支持此属性typeMismatch
:输入框的值与元素type
要求的值不匹配时返回true
,否则为false
。例如email
类型输入框输入非email
格式,此时返回true
(也可用:invalid
伪类修改样式)valid
:当前元素是否完全验证通过,通过返回true
,否则为false
。例如email
类型输入框的属性minlength="20"
,输入值为email@email.com
时返回false
(可用:invalid
伪类修改样式)valueMissing
:若元素含required
属性且输入框值为空,则返回true
,否则为false
(可用:invalid
伪类修改样式)
validationMessage
表示当前输入框将要显示的出错提示,只读属性。
<form><input type="email" required minlength="10" /><button type="button">提交</button>
</form>
<script>const input = document.querySelector('input')const btn = document.querySelector('button')btn.addEventListener('click', () => {console.log('input:', input.value, ', validationMessage:', input.validationMessage)})
</script>
willValidate
当前元素是否在提交前进行验证,只读属性,需要验证返回true
,否则为false
。
若元素含disabled
属性,则此属性返回false
,即提交前无需验证此元素。
其它
阻止 form 默认提交行为
表单内submit
按钮单击时会触发表单默认行为,若form
指定了action
属性,将提交表单数据(FormData 格式)并跳转至action
页面,未指定将跳转至当前页面,造成页面刷新。
<form action="" method="POST"><input type="text" name="username"><input type="text" name="password"><button type="submit">提交</button>
</form>
修改按钮类型
可修改按钮类型为button
。
<button type="button">提交</button>
或者使用input
标签的按钮。
<input type="button" value="提交">
阻止按钮点击事件
addEventListener
绑定的事件,阻止默认行为。
<button type="submit">提交</button>const btn = document.querySelector('button')btn.addEventListener('click', event => {event.preventDefault()
})
onclick
绑定的事件,阻止默认行为。
<button type="submit" onclick="handler(event)">提交</button>function handler(event) {event.preventDefault()
}
onclick 返回值方式
其中onclick="return true"
为默认的表单提交事件,onclick="return false"
为阻止表单提交事件。
<button type="submit" onclick="return false">提交</button>
若阻止表单默认提交行为同时,又要保留点击事件,可用return function()
返回函数的方式,注意函数末尾一定要返回false
。
<button type="submit" onclick="return handler(event)">提交</button>function handler(event) {...return false
}
更进一步的,可在表单提交之前做一些数据处理,最后再return true
触发表单提交。
<button type="submit" onclick="return handler(event)">提交</button>function handler(event) {...return true
}
阻止表单 submit 事件
addEventListener
绑定的事件,阻止submit
事件。
<form action="" method="POST">...
</form>const form = document.querySelector('form')form.addEventListener('submit', event => {event.preventDefault()
})
onclick
绑定的事件,阻止submit
事件。
<form action="" method="POST" onsubmit="handler(event)">...
</form>function handler(event) {event.preventDefault()
}
onsubmit 返回值方式
此方式同上述onclick
返回值方式基本一致,不再详细描述。
<form action="" method="POST" onsubmit="return handler(event)">...
</form>function handler(event){...return true | false
}
HTML5 之 Form 标签相关推荐
- 【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放
导航 [初探HTML5之使用新标签布局]用html5布局我的博客页! [HTML5初探之form标签]解放表单验证.增加文件上传.集成拖放 [HTML5初探之绘制图像(上)]看我canvas元素引领下 ...
- HTML form 标签的 method 属性
2019独角兽企业重金招聘Python工程师标准>>> 实例 在下面的例子中,表单数据将通过 method 属性附加到 URL 上: <form action="fo ...
- a jquery 标签点击不跳转_form标签的action属性怎么用?form标签action属性的用法介绍(附实例)...
本篇文章主要的介绍了关于HTML中form标签action属性的用法介绍和实例,还有关于form标签的action属性的定义和语法介绍,最后徐还有关于form标签的action属性的作用解释.现在让我 ...
- php 编辑器 插入视频,苗景云的博客-PHPCMS V9编辑器中新增上传mp4视频(上传视频并插入HTML5的video标签)的功能...
由于PHPCMS v9默认的编辑器中上传的视频插入的是embed标签使用的是flash播放器,手机端无法播放,所以来改造下,让其上传视频并插入HTML5的video标签,这样电脑端的主流浏览器和手机端 ...
- 前端笔记(Html+CSS+JS+DOM+网页特效+jQuery+HTML5+CSS3+canvas 标签+web开发重难点+面向对象+AJAX)
第1章Html Html:超级文本标记语言(HyperText Markup Language),在浏览器上运行的一种标记语言. 就是给文本加上含有语义的标签. 接下来应该学习更多具体语义标签: 一. ...
- HTML5常用基础标签
HTML5中的标签众多,有时新手刚入门前端很容易步入误区,即想要一把抓掌握所有的知识,其实全部掌握效果不尽人意,相反会让我们学习受挫,效率低下,因此"片面"的学习有助于我们提高学习 ...
- action请求是什么意思_html form标签的action属性是什么意思?又有哪些用法?(附实例)
本篇文章主要的介绍HTML form表单标签的action属性的用法,用法介绍和实例等都在里面,现在让我们一起来看吧 首先我们先来介绍一下关于HTML form标签的action属性的意思: form ...
- HTML5新增的标签属性以及它们的用法
HTML5新增了一些标签,但它们并不像我们想象的那样陌生,它们只是更加符合我们的思维方式,更人性化.按照以往的布局方式,我们要划分页面结构时都是使用的div,例如<div class=" ...
- 去除html标签 linux,HTML5新增的标签和废除的标签
HTML5新增的结构标签 section元素 表示页面中的一个内容区块,比如章节.页眉.页脚或页面的其他部分.可以和h1. h2--等元素结合起来使用,表示文档结构.例:HTML5中--;HTML4中 ...
最新文章
- Fiddler的学习
- 简单工厂模式(详细)(举例饮料)
- Java Stub 研究学习(2)
- 27 SD配置-主数据-信用管理-定义风险类别
- XX公司定制开发的仓库管理系统
- Ansible详解(七)——Ansible palybook简单使用
- Newtonsoft.Json.Compact
- python运行需要网络吗_python邮件和网络的简单使用
- flink不等于符号问题
- linux下unison安装配置
- 个人运营app需要多少钱【费用】
- python expend_Python序列化proto中repeated修饰的数据
- Java设计原则——依赖倒转原则
- 无人驾驶车辆纵向速度PID控制
- 物流matlab,物流配送线路优化Matlab算法研究
- Vue和layUI的区别何在?
- CSS——制作三角形
- IO模块软件处理方案
- ERP出库审核业务(四十四)
- Python oauth2登录Outlook读取邮件
热门文章
- 数据库Java项目:在线租房出租房屋系统(java+springboot+maven+mysql)
- c语言用随机投点法计算圆周率,(原创精品)用随机投点法计算π值【compute π with dartpoint randomly】...
- HDU 6441Find Integer
- 杨明 南京师范大学计算机学院,陈松灿教授、杨明教授、耿新教授应邀来我校做学术报告...
- 第四周:基于图像相似度比较的分镜头
- Mybatis Plus 多租户架构(Multi-tenancy)实现
- JS 超大文件上传解决方案:分片断点上传(一)
- 深度学习端到端的优缺点和网络泛化性
- 雅居乐万豪酒店java_“万豪,我心所属之地” | 上海雅居乐万豪酒店Terence Sun的实习故事...
- 多用途数据主导“物联网未来”的实施
导航 [初探HTML5之使用新标签布局]用html5布局我的博客页! [HTML5初探之form标签]解放表单验证.增加文件上传.集成拖放 [HTML5初探之绘制图像(上)]看我canvas元素引领下 ...
2019独角兽企业重金招聘Python工程师标准>>> 实例 在下面的例子中,表单数据将通过 method 属性附加到 URL 上: <form action="fo ...
本篇文章主要的介绍了关于HTML中form标签action属性的用法介绍和实例,还有关于form标签的action属性的定义和语法介绍,最后徐还有关于form标签的action属性的作用解释.现在让我 ...
由于PHPCMS v9默认的编辑器中上传的视频插入的是embed标签使用的是flash播放器,手机端无法播放,所以来改造下,让其上传视频并插入HTML5的video标签,这样电脑端的主流浏览器和手机端 ...
第1章Html Html:超级文本标记语言(HyperText Markup Language),在浏览器上运行的一种标记语言. 就是给文本加上含有语义的标签. 接下来应该学习更多具体语义标签: 一. ...
HTML5中的标签众多,有时新手刚入门前端很容易步入误区,即想要一把抓掌握所有的知识,其实全部掌握效果不尽人意,相反会让我们学习受挫,效率低下,因此"片面"的学习有助于我们提高学习 ...
本篇文章主要的介绍HTML form表单标签的action属性的用法,用法介绍和实例等都在里面,现在让我们一起来看吧 首先我们先来介绍一下关于HTML form标签的action属性的意思: form ...
HTML5新增了一些标签,但它们并不像我们想象的那样陌生,它们只是更加符合我们的思维方式,更人性化.按照以往的布局方式,我们要划分页面结构时都是使用的div,例如<div class=" ...
HTML5新增的结构标签 section元素 表示页面中的一个内容区块,比如章节.页眉.页脚或页面的其他部分.可以和h1. h2--等元素结合起来使用,表示文档结构.例:HTML5中--;HTML4中 ...