【HTML 教程】表单标签
1、
1.1、简介
<form>
form>
<form action="https://example.com/api" method="post">
<label for="POST-name">用户名:label>
<input id="POST-name" type="text" name="user">
<input type="submit" value="提交">
form>
accept-charset:服务器接受的字符编码列表,使用空格分隔,默认与网页编码相同。
action:服务器接收数据的 URL。
autocomplete:如果用户没有填写某个控件,浏览器是否可以自动填写该值。它的可能取值分别为off(不自动填写)和on(自动填写)。
method:提交数据的 HTTP 方法,可能的值有post(表单数据作为 HTTP 数据体发送),get(表单数据作为 URL 的查询字符串发送),dialog(表单位于
enctype:当method属性等于post时,该属性指定提交给服务器的 MIME 类型。可能的值为application/x-www-form-urlencoded(默认值),multipart/form-data(文件上传的情况),text/plain。
name:表单的名称,应该在网页中是唯一的。注意,如果一个控件没有设置name属性,那么这个控件的值就不会作为键值对,向服务器发送。
novalidate:布尔属性,表单提交时是否取消验证。
target:在哪个窗口展示服务器返回的数据,可能的值有_self(当前窗口),_blank(新建窗口),_parent(父窗口),_top(顶层窗口),
1.2、enctype 属性
Content-Disposition: form-data; name="mycontrol"
<form action="https://example.com/api"
enctype="multipart/form-data"
method="post">
用户名:<input type="text" name="submit-name"><br>
文件:<input type="file" name="files"><br>
<input type="submit" value="上传"> <input type="reset" value="清除">
form>
Content-Type: multipart/form-data; boundary=--AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--
2、
<form>
<fieldset>
<p>年龄:<input type="text" name="age">p>
<p>性别:<input type="text" name="gender">p>
fieldset>
form>
disabled:布尔属性,一旦设置会使得
form:指定控件组所属的
name:该控件组的名称。
<fieldset>
<legend>学生情况登记legend>
<p>年龄:<input type="text" name="age">p>
<p>性别:<input type="text" name="gender">p>
fieldset>
3、
<label for="user">用户名:label>
<input type="text" name="user" id="user">
<label>用户名:
<input type="text" name="user">
label>
for:关联控件的id属性。
form:关联表单的id属性。设置了该属性后,
可以放置在页面的任何位置,否则只能放在
<label for="username">用户名:label>
<input type="text" id="username" name="username">
<label for="username"><abbr title="required">*abbr>label>
4、
4.1、简介
<input>
<input type="text">
autofocus:布尔属性,是否在页面加载时自动获得焦点。
disabled:布尔属性,是否禁用该控件。一旦设置,该控件将变灰,用户可以看到,但是无法操作。
form:关联表单的id属性。设置了该属性后,控件可以放置在页面的任何位置,否则只能放在
list:关联的
name:控件的名称,主要用于向服务器提交数据时,控件键值对的键名。注意,只有设置了name属性的控件,才会向服务器提交,不设置就不会提交。
readonly:布尔属性,是否为只读。
required:布尔属性,是否为必填。
type:控件类型,详见下文。
value:控件的值。
4.2、类型
<input type="text" id="name" name="name" required
minlength="4" maxlength="8" size="10">
maxlength:可以输入的最大字符数,值为一个非负整数。
minlength:可以输入的最小字符数,值为一个非负整数,且必须小于maxlength。
pattern:用户输入必须匹配的正则表达式,比如要求用户输入4个~8个英文字符,可以写成pattern="[a-z]{4,8}"。如果用户输入不符合要求,浏览器会弹出提示,不会提交表单。
placeholder:输入字段为空时,用于提示的示例值。只要用户没有任何字符,该提示就会出现,否则会消失。
readonly:布尔属性,表示该输入框是只读的,用户只能看,不能输入。
size:表示输入框的显示长度有多少个字符宽,它的值是一个正整数,默认等于20。超过这个数字的字符,必须移动光标才能看到。
spellcheck:是否对用户输入启用拼写检查,可能的值为true或false。
<form>
<input type="search" id="mySearch" name="q"
placeholder="输入搜索词……" required>
<input type="submit" value="搜索">
form>
<input type="button" value="点击">
<input type="submit" value="提交">
formaction:提交表单数据的服务器 URL。
formenctype:表单数据的编码类型。
formmethod:提交表单使用的 HTTP 方法(get或post)。
formnovalidate:一个布尔值,表示数据提交给服务器之前,是否要忽略表单验证。
formtarget:收到服务器返回的数据后,在哪一个窗口显示。
<input type="image" alt="登陆" src="login-button.png">
alt:图像无法加载时显示的替代字符串。
src:加载的图像 URL。
height:图像的显示高度,单位为像素。
width:图像的显示宽度,单位为像素。
formaction:提交表单数据的服务器 URL。
formenctype:表单数据的编码类型。
formmethod:提交表单使用的 HTTP 方法(get或post)。
formnovalidate:一个布尔值,表示数据提交给服务器之前,是否要忽略表单验证。
formtarget:收到服务器返回的数据后,在哪一个窗口显示。
<input type="reset" value="重置">
<input type="checkbox" id="agreement" name="agreement" checked>
<label for="agreement">是否同意label>
<fieldset>
<legend>你的兴趣legend>
<div>
<input type="checkbox" id="coding" name="interest" value="coding">
<label for="coding">编码label>
div>
<div>
<input type="checkbox" id="music" name="interest" value="music">
<label for="music">音乐label>
div>
fieldset>
<fieldset>
<legend>性别legend>
<div>
<input type="radio" id="male" name="gender" value="male">
<label for="male">男label>
div>
<div>
<input type="radio" id="female" name="gender" value="female">
<label for="female">女label>
div>
fieldset>
checked:布尔属性,表示是否默认选中当前项。
value:用户选中该项时,提交到服务器的值,默认为on'。
<input type="email" pattern=".+@foobar.com" size="30" required>
<input id="emailAddress" type="email" multiple required>
maxlength:可以输入的最大字符数。
minlength:可以输入的最少字符数。
multiple:布尔属性,是否允许输入多个以逗号分隔的电子邮箱。
pattern:输入必须匹配的正则表达式。
placeholder:输入为空时的显示文本。
readonly:布尔属性,该输入框是否只读。
size:一个非负整数,表示输入框的显示长度为多少个字符。
spellcheck:是否对输入内容启用拼写检查,可能的值为true或false。
<input type="email" size="40" list="defaultEmails">
<datalist id="defaultEmails">
<option value="jbond007@mi6.defence.gov.uk">
<option value="jbourne@unknown.net">
<option value="nfury@shield.org">
<option value="tony@starkindustries.com">
<option value="hulk@grrrrrrrr.arg">
datalist>
<input type="password" id="pass" name="password"
minlength="8" required>
maxlength:可以输入的最大字符数。
minlength:可以输入的最少字符数。
pattern:输入必须匹配的正则表达式。
placeholder:输入为空时的显示文本。
readonly:布尔属性,该输入框是否只读。
size:一个非负整数,表示输入框的显示长度为多少个字符。
autocomplete:是否允许自动填充,可能的值有on(允许自动填充)、off(不允许自动填充)、current-password(填入当前网站保存的密码)、new-password(自动生成一个随机密码)。
inputmode:允许用户输入的数据类型,可能的值有none(不使用系统输入法)、text(标准文本输入)、decimal(数字,包含小数)、numeric(数字0-9)等。
<input type="file"
id="avatar" name="avatar"
accept="image/png, image/jpeg">
accept:允许选择的文件类型,使用逗号分隔,可以使用 MIME 类型(比如image/jpeg),也可以使用后缀名(比如.doc),还可以使用audio/*(任何音频文件)、video/*(任何视频文件)、image/*(任何图像文件)等表示法。
capture:用于捕获图像或视频数据的源,可能的值有user(面向用户的摄像头或麦克风),environment(外接的摄像头或麦克风)。
multiple:布尔属性,是否允许用户选择多个文件。
<input id="prodId" name="prodId" type="hidden" value="xm234jq">
<input type="number" id="tentacles" name="tentacles"
min="10" max="100">
max:允许输入的最大数值。
min:允许输入的最小数值。
placeholder:用户输入为空时,显示的示例值。
readonly:布尔属性,表示该控件是否为只读。
step:点击向上和向下箭头时,数值每次递减的步长值。如果用户输入的值,不符合步长值的设定,浏览器会自动四舍五入到最近似的值。默认的步长值是1,如果初始的value属性设为1.5,那么点击向上箭头得到2.5,点击向下箭头得到0.5。
<input type="range" id="start" name="volume"
min="0" max="11">
max:允许的最大值,默认为100。
min:允许的最小值,默认为0。
step:步长值,默认为1。
<input type="range" list="tickmarks">
<datalist id="tickmarks">
<option value="0" label="0%">
<option value="10">
<option value="20">
<option value="30">
<option value="40">
<option value="50" label="50%">
<option value="60">
<option value="70">
<option value="80">
<option value="90">
<option value="100" label="100%">
datalist>
<input type="url" name="url" id="url"
placeholder="https://example.com"
pattern="https://.*" size="30"
required>
maxlength:允许的最大字符数。
minlength:允许的最少字符串。
pattern:输入内容必须匹配的正则表达式。
placeholder:输入为空时显示的示例文本。
readonly:布尔属性,表示该控件的内容是否只读。
size:一个非负整数,表示该输入框显示宽度为多少个字符。
spellcheck:是否启动拼写检查,可能的值为true(启用)和false(不启用)。
<input id="myURL" name="myURL" type="url"
list="defaultURLs">
<datalist id="defaultURLs">
<option value="https://developer.mozilla.org/" label="MDN Web Docs">
<option value="http://www.google.com/" label="Google">
<option value="http://www.microsoft.com/" label="Microsoft">
<option value="https://www.mozilla.org/" label="Mozilla">
<option value="http://w3.org/" label="W3C">
datalist>
<input type="tel" id="phone" name="phone"
pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}"
required>
<small>Format: 123-456-7890small>
maxlength:允许的最大字符数。
minlength:允许的最少字符串。
pattern:输入内容必须匹配的正则表达式。
placeholder:输入为空时显示的示例文本。
readonly:布尔属性,表示该控件的内容是否只读。
size:一个非负整数,表示该输入框显示宽度为多少个字符。
<input type="color" id="background" name="background"
value="#e66465">
<input type="date" id="start" name="start"
value="2018-07-22"
min="2018-01-01" max="2018-12-31">
max:可以允许的最晚日期,格式为yyyy-MM-dd。
min:可以允许的最早日期,格式为yyyy-MM-dd。
step:步长值,一个数字,以天为单位。
<input type="time" id="appt" name="appt"
min="9:00" max="18:00" required>
<small>营业时间上午9点到下午6点small>
max:允许的最晚时间。
min:允许的最早时间。
readonly:布尔属性,表示用户是否不可以编辑时间。
step:步长值,单位为秒。
<input id="appt" type="time" name="appt" step="2">
<input type="month" id="start" name="start"
min="2018-03" value="2018-05">
max:允许的最晚时间,格式为yyyy-MM。
min:允许的最早时间,格式为yyyy-MM。
readonly:布尔属性,表示用户是否不可以编辑时间。
step:步长值,单位为月。
<input type="week" name="week" id="camp-week"
min="2018-W18" max="2018-W26" required>
max:允许的最晚时间,格式为yyyy-Www。
min:允许的最早时间,格式为yyyy-Www。
readonly:布尔属性,表示用户是否不可以编辑时间。
step:步长值,单位为周。
<input type="datetime-local" id="meeting-time"
name="meeting-time" value="2018-06-12T19:30"
min="2018-06-07T00:00" max="2018-06-14T00:00">
max:允许的最晚时间,格式为yyyy-MM-ddThh:mm。
min:允许的最早时间,格式为yyyy-MM-ddThh:mm。
step:步长值,单位为秒,默认值是60。
5、
<button>点击button>
<button name="search" type="submit">
<img src="search.gif">搜索
button>
autofocus:布尔属性,表示网页加载时,焦点就在这个按钮。网页里面只能有一个元素,具有这个属性。
disabled:布尔属性,表示按钮不可用,会导致按钮变灰,不可点击。
name:按钮的名称(与value属性配合使用),将以name=value的形式,随表单一起提交到服务器。
value:按钮的值(与name属性配合使用),将以name=value的形式,随表单一起提交到服务器。
type:按钮的类型,可能的值有三种:submit(点击后将数据提交给服务器),reset(将所有控件的值重置为初始值),button(没有默认行为,由脚本指定按钮的行为)。
form:指定按钮关联的
formaction:数据提交到服务器的目标 URL,会覆盖
formenctype:数据提交到服务器的编码方式,会覆盖
formmethod:数据提交到服务器使用的 HTTP 方法,会覆盖
formnovalidate:布尔属性,数据提交到服务器时关闭本地验证,会覆盖
formtarget:数据提交到服务器后,展示服务器返回数据的窗口,会覆盖
6、
<label for="pet-select">宠物:label>
<select id="pet-select" name="pet-select">
<option value="">--请选择一项--option>
<option value="dog">狗option>
<option value="cat">猫option>
<option value="others">其他option>
select>
<select name="choice">
<option value="first">First Valueoption>
<option value="second" selected>Second Valueoption>
<option value="third">Third Valueoption>
select>
autofocus:布尔属性,页面加载时是否自动获得焦点。
disabled:布尔属性,是否禁用当前控件。
form:关联表单的id属性。
multiple:布尔属性,是否可以选择多个菜单项。默认情况下,只能选择一项。一旦设置,多数浏览器会显示一个滚动列表框。用户可能需要按住Shift或其他功能键,选中多项。
name:控件名。
required:布尔属性,是否为必填控件。
size:设置了multiple属性时,页面显示时一次可见的行数,其他行需要滚动查看。
7、
disabled:布尔属性,是否禁用该项。
label:该项的说明。如果省略,则等于该项的文本内容。
selected:布尔属性,是否为默认值。显然,一组菜单中,只能有一个菜单项设置该属性。
value:该项提交到服务器的值。如果省略,则等于该项的文本内容。
<label>宠物:
<select name="pets" multiple size="4">
<optgroup label="四条腿的宠物">
<option value="dog">狗option>
<option value="cat">猫option>
optgroup>
<optgroup label="鸟类">
<option value="parrot">鹦鹉option>
<option value="thrush">画眉option>
optgroup>
select>
label>
disabled:布尔设置,是否禁用该组。一旦设置,该组所有的菜单项都不可选。
label:菜单项的标题。
8、
<label for="ice-cream-choice">冰淇淋:label>
<input type="text" list="ice-cream-flavors" id="ice-cream-choice" name="ice-cream-choice">
<datalist id="ice-cream-flavors">
<option value="巧克力">
<option value="椰子">
<option value="薄荷">
<option value="草莓">
<option value="香草">
datalist>
<datalist id="ide">
<option value="Brackets" label="by Adobe">
<option value="Coda" label="by Panic">
datalist>
9、
<textarea id="story" name="story"
rows="5" cols="33">
这是一个很长的故事。
textarea>
autofocus:布尔属性,是否自动获得焦点。
cols:文本框的宽度,单位为字符,默认值为20。
disabled:布尔属性,是否禁用该控件。
form:关联表单的id属性。
maxlength:允许输入的最大字符数。如果未指定此值,用户可以输入无限数量的字符。
minlength:允许输入的最小字符数。
name:控件的名称。
placeholder:输入为空时显示的提示文本。
readonly:布尔属性,控件是否为只读。
required:布尔属性,控件是否为必填。
rows:文本框的高度,单位为行。
spellcheck:是否打开浏览器的拼写检查。可能的值有true(打开),default(由父元素或网页设置决定),false(关闭)。
wrap:输入的文本是否自动换行。可能的值有hard(浏览器自动插入换行符CR + LF,使得每行不超过控件的宽度),soft(输入内容超过宽度时自动换行,但不会加入新的换行符,并且浏览器保证所有换行符都是CR + LR,这是默认值),off(关闭自动换行,单行长度超过宽度时,会出现水平滚动条)。
10、
<input type="number" name="a" value="10"> +
<input type="number" name="b" value="10"> =
<output name="result">20output>
for:关联控件的id属性,表示为该控件的操作结果。
form:关联表单的id属性。
name:控件的名称。
<progress id="file" max="100" value="70"> 70% progress>
max:进度条的最大值,应该是一个大于0的浮点数。默认值为1。
value:进度条的当前值。它必须是0和max属性之间的一个有效浮点数。如果省略了max属性,该值则必须在0和1之间。如果省略了value属性,则进度条会出现滚动,表明正在进行中,无法知道完成的进度。
<p>烤箱的当前温度是<meter min="200" max="500"
value="350"> 350 度meter>。p>
min:范围的下限,必须小于max属性。如果省略,则默认为0。
max:范围的上限,必须大于min属性。如果省略,则默认为1。
value:当前值,必须在min属性和max属性之间。如果省略,则默认为0。
low:表示“低端”的上限门槛值,必须大于min属性,小于high属性和max属性。如果省略,则等于min属性。
high:表示“高端”的下限门槛值,必须小于max属性,大于low属性和min属性。如果省略,则等于max属性。
optimum:指定最佳值,必须在min属性和max属性之间。它应该与low属性和high属性一起使用,表示最佳范围。如果optimum小于low属性,则表示“低端”是最佳范围;如果大于high属性,则表示“高端”是最佳范围;如果在low和high之间,则表示“中间地带”是最佳范围。如果省略,则等于min和max的中间值。
form:关联表单的id属性。
<meter id="fuel" name="fuel"
min="0" max="100"
low="33" high="66" optimum="80"
value="50">
at 50/100
meter>