HTML5 表单属性

HTML5新增加了一些表单属性,form增加了autocomplete和novalidate,input控件增加了autocomplete、autofocus、form、formaction、formenctype、formmethod、formnovalidate、formtarget、height 与 width、list、min 与 max、multiple、pattern (regexp)

HTML5 新的表单属性

HTML5 的 <form> 和 <input>标签添加了几个新属性.

<form>新属性:

  • autocomplete

  • novalidate

<input>新属性:

  • autocomplete

  • autofocus

  • form

  • formaction

  • formenctype

  • formmethod

  • formnovalidate

  • formtarget

  • height 与 width

  • list

  • min 与 max

  • multiple

  • pattern (regexp)

  • placeholder

  • required

  • step

<form> / <input> autocomplete 属性

autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。

当用户在自动完成域中开始输入时,浏览器应该在该域中显示填写的选项。

提示:  autocomplete 属性有可能在 form元素中是开启的,而在input元素中是关闭的。

注意: autocomplete 适用于 <form> 标签,以及以下类型的 <input> 标签:text, search, url, telephone, email, password, datepickers, range 以及 color。

OperaSafariChromeFirefoxInternet Explorer

在线示例

HTML form 中开启 autocomplete (一个 input 字段关闭 autocomplete ):

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php" autocomplete="on">
  First name:<input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  E-mail: <input type="email" name="email" autocomplete="off"><br>
  <input type="submit">
</form>

<p>填写并提交表单,然后重新刷新页面查看如何自动填充内容。</p>
<p>注意 form 的 autocomplete 属性为  "on"(开),但是 e-mail 自动为“off”(关)。</p>

</body>
</html>
测试看看 ‹/›

提示:某些浏览器中,您可能需要启用自动完成功能,以使该属性生效。

<form> novalidate 属性

novalidate 属性是一个 boolean(布尔) 属性.

novalidate 属性规定在提交表单时不应该验证 form 或 input 域。

OperaSafariChromeFirefoxInternet Explorer

在线示例

无需验证提交的表单数据

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php" novalidate>
E-mail: <input type="email" name="user_email">
<input type="submit">
</form>

<p><strong>注意:</strong>在 Safari 和 Internet Explorer 9 及之前的版本中不支持 novalidate 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> autofocus 属性

autofocus 属性是一个 boolean 属性.

autofocus 属性规定在页面加载时,域自动地获得焦点。

OperaSafariChromeFirefoxInternet Explorer

在线示例

让 "First name" input 输入域在页面载入时自动聚焦:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  First name: <input type="text" name="fname" autofocus><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit">
</form>
<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本不支持 input 标签的 autofocus 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> form 属性

form 属性规定输入域所属的一个或多个表单。

提示:如需引用一个以上的表单,请使用空格分隔的列表。

OperaSafariChromeFirefoxInternet Explorer

在线示例

位于form表单外的 input 字段引用了 HTML form (该 input 表单仍然属于form表单的一部分):

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php" id="form1">
First name: <input type="text" name="fname"><br>
<input type="submit" value="提交">
</form>

<p> "Last name" 字段没有在 form 表单之内,但它也是 form 表单的一部分。</p>

Last name: <input type="text" name="lname" form="form1">

<p><b>注意:</b> IE 不支持 form 属性</p>

</body>
</html>
测试看看 ‹/›

<input> formaction 属性

The formaction 属性用于描述表单提交的URL地址.

The formaction 属性会覆盖<form> 元素中的action属性.

注意: The formaction 属性用于 type="submit" 和 type="image".

OperaSafariChromeFirefoxInternet Explorer

在线示例

以下HTMLform表单包含了两个不同地址的提交按钮:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="提交"><br>
  <input type="submit" formaction="demo-admin.php" value="提交">
</form>
<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本不支持 input 标签的 formaction 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> formenctype 属性

formenctype 属性描述了表单提交到服务器的数据编码 (只对form表单中 method="post" 表单)

formenctype 属性覆盖 form 元素的 enctype 属性。

主要: 该属性与 type="submit" 和 type="image" 配合使用。

OperaSafariChromeFirefoxInternet Explorer

在线示例

第一个提交按钮已默认编码发送表单数据,第二个提交按钮以 "multipart/form-data" 编码格式发送表单数据:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-post-enctype.php" method="post">
  First name: <input type="text" name="fname"><br>
  <input type="submit" value="提交">
  <input type="submit" formenctype="multipart/form-data" value="以 Multipart/form-data 提交">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本不支持 input 标签的 formenctype 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> formmethod  属性

formmethod 属性定义了表单提交的方式。

formmethod 属性覆盖了 <form> 元素的 method 属性。

注意: 该属性可以与 type="submit" 和 type="image" 配合使用。

OperaSafariChromeFirefoxInternet Explorer

在线示例

重新定义表单提交方式示例:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php" method="get">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="提交">
  <input type="submit" formmethod="post" formaction="demo-form.php" value="使用 POST 提交">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本不支持 input 标签的 formmethod 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> formnovalidate 属性

novalidate 属性是一个 boolean 属性.

novalidate属性描述了 <input> 元素在表单提交时无需被验证。

formnovalidate 属性会覆盖 <form> 元素的novalidate属性.

注意:  formnovalidate 属性与type="submit一起使用

OperaSafariChromeFirefoxInternet Explorer

在线示例

两个提交按钮的表单(使用与不适用验证 ):

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  E-mail: <input type="email" name="userid"><br>
  <input type="submit" value="提交"><br>
  <input type="submit" formnovalidate="formnovalidate" value="不验证提交">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本,或 Safari 不支持 input 标签的 formnovalidate 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> formtarget 属性

formtarget 属性指定一个名称或一个关键字来指明表单提交数据接收后的展示。

The formtarget 属性覆盖 <form>元素的target属性.

注意:  formtarget 属性与type="submit" 和 type="image"配合使用.

OperaSafariChromeFirefoxInternet Explorer

在线示例

两个提交按钮的表单, 在不同窗口中显示:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="正常提交">
  <input type="submit" formtarget="_blank" value="提交到一个新的页面上">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本不支持 input 标签的 formtarget 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> height 和 width 属性

height 和 width 属性规定用于 image 类型的 <input> 标签的图像高度和宽度。

注意: height 和 width 属性只适用于 image 类型的<input> 标签。

提示:图像通常会同时指定高度和宽度属性。如果图像设置高度和宽度,图像所需的空间 在加载页时会被保留。如果没有这些属性, 浏览器不知道图像的大小,并不能预留 适当的空间。图片在加载过程中会使页面布局效果改变 (尽管图片已加载)。

OperaSafariChromeFirefoxInternet Explorer

在线示例

定义了一个图像提交按钮, 使用了 height 和 width 属性:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="image" src="login_button.gif"  alt="Submit">
</form>


</body>
</html>
测试看看 ‹/›

<input> list 属性

list 属性规定输入域的 datalist。datalist 是输入域的选项列表。

OperaSafariChromeFirefoxInternet Explorer

在线示例

在 <datalist>中预定义 <input> 值:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>
    
<form action="demo-form.php" method="get">
<input list="browsers" name="browser">
<datalist id="browsers">
  <option value="Internet Explorer">
  <option value="Firefox">
  <option value="Chrome">
  <option value="Opera">
  <option value="Safari">
</datalist>
<input type="submit">
</form>

<p><strong>注意:</strong> Internet Explorer 9(更早 IE 版本),Safari 不支持 datalist 标签。</p>

</body>
</html>
测试看看 ‹/›

<input> min 和 max 属性

min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。

注意: min、max 和 step 属性适用于以下类型的 <input> 标签:date pickers、number 以及 range。

OperaSafariChromeFirefoxInternet Explorer

在线示例

<input> 元素最小值与最大值设置:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">

 输入 1980-01-01 之前的日期:
  <input type="date" name="bday" max="1979-12-31"><br>

 输入 2000-01-01 之后的日期:
  <input type="date" name="bday" min="2000-01-02"><br>

  数量 (在1和5之间):
  <input type="number" name="quantity" min="1" max="5"><br>

  <input type="submit">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本,Firefox 不支持 input 标签的  max 和 min 属性。</p>
<p><strong>注意:</strong>
在 Internet Explorer 10中 max 和 min 属性不支持输入日期和时间,IE 10 不支持这些输入类型。</p>

</body>
</html>
测试看看 ‹/›

<input> multiple 属性

multiple 属性是一个 boolean 属性.

multiple 属性规定<input> 元素中可选择多个值。

注意: multiple 属性适用于以下类型的 <input> 标签:email 和 file:

OperaSafariChromeFirefoxInternet Explorer

在线示例

上传多个文件:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  选择图片: <input type="file" name="img" multiple>
  <input type="submit">
</form>

<p>尝试选取一张或者多种图片。</p>

<p><strong>注意:</strong>  Internet Explorer 9及更早 IE 版本不支持 input 标签的 multiple 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> pattern 属性

pattern 属性描述了一个正则表达式用于验证 <input> 元素的值。

注意:pattern 属性适用于以下类型的 <input> 标签: text, search, url, tel, email, 和 password.

提示: 是用来全局 title 属性描述了模式.

OperaSafariChromeFirefoxInternet Explorer

在线示例

下面的示例显示了一个只能包含三个字母的文本域(不含数字及特殊字符):

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  Country code: <input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">
  <input type="submit">
</form>

<p><strong>注意:</strong>  Internet Explorer 9及更早 IE 版本,或 Safari 不支持 input 标签的 pattern 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> placeholder 属性

placeholder 属性提供一种提示(hint),描述输入域所期待的值。

简短的提示在用户输入值前会显示在输入域上。

注意: placeholder 属性适用于以下类型的 <input>  标签:text, search, url, telephone, email 以及 password。

OperaSafariChromeFirefoxInternet Explorer

在线示例

input 字段提示文本t:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  <input type="text" name="fname" placeholder="First name"><br>
  <input type="text" name="lname" placeholder="Last name"><br>
  <input type="submit" value="提交">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本不支持 input 标签的 placeholder 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> required 属性

required 属性是一个 boolean 属性.

required 属性规定必须在提交之前填写输入域(不能为空)。

注意:required 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。

OperaSafariChromeFirefoxInternet Explorer

在线示例

不能为空的input字段:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  Username: <input type="text" name="usrname" required>
  <input type="submit">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本,或 Safari 不支持 input 标签的 required 属性。</p>

</body>
</html>
测试看看 ‹/›

<input> step 属性

step 属性为输入域规定合法的数字间隔。

如果 step="3",则合法的数是 -3,0,3,6 等

提示:  step 属性可以与 max 和 min 属性创建一个区域值.

注意:  step 属性与以下type类型一起使用: number, range, date, datetime, datetime-local, month, time 和 week.

OperaSafariChromeFirefoxInternet Explorer

在线示例

规定input step步长为3:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>鸟哥教程(niaoge.com)</title> 
</head>
<body>

<form action="demo-form.php">
  <input type="number" name="points" step="3">
  <input type="submit">
</form>

<p><strong>注意:</strong> Internet Explorer 9及更早 IE 版本,或 Firefox 不支持 input 标签的 step 属性。</p>

</body>
</html>
测试看看 ‹/›

HTML5 <input> 标签

标签描述
<form>定义一个form表单
<input>定义一个 input 域