Skip to content

HTML 表单和输入

HTML <form> 元素表示文档中的一个区域,此区域包含交互控件,用于向 Web 服务器提交信息。


HTML 表单标签

New : HTML5新标签

标签描述
<form>定义供用户输入的表单
<input>定义输入域
<textarea>定义文本域 (一个多行的输入控件)
<label>定义了 <input> 元素的标签,一般为输入标题
<fieldset>定义了一组相关的表单元素,并使用外框包含起来
<legend>定义了 <fieldset> 元素的标题
<select>定义了下拉选项列表
<optgroup>定义选项组
<option>定义下拉列表中的选项
<button>定义一个点击按钮
<datalist>New指定一个预先定义的输入控件选项列表
<keygen>New定义了表单的密钥对生成器字段
<output>New定义一个计算结果

HTML 表单用于收集用户的输入信息。

HTML 表单表示文档中的一个区域,此区域包含交互控件,将用户收集到的信息发送到 Web 服务器。

HTML 表单通常包含各种输入字段、复选框、单选按钮、下拉列表等元素。

以下是一个简单的HTML表单的例子:

  • <form> 元素用于创建表单,action 属性定义了表单数据提交的目标 URL,method 属性定义了提交数据的 HTTP 方法(这里使用的是 "post")。
  • <label> 元素用于为表单元素添加标签,提高可访问性。
  • <input> 元素是最常用的表单元素之一,它可以创建文本输入框、密码框、单选按钮、复选框等。type 属性定义了输入框的类型,id 属性用于关联 <label> 元素,name 属性用于标识表单字段。
  • <select> 元素用于创建下拉列表,而 <option> 元素用于定义下拉列表中的选项。

实例

html
<form action="/" method="post">  
    <!-- 文本输入框 -->  
    <label for="name">用户名:</label>  
    <input type="text" id="name" name="name" required>  
  
    <br>  
  
    <!-- 密码输入框 -->  
    <label for="password">密码:</label>  
    <input type="password" id="password" name="password" required>  
  
    <br>  
  
    <!-- 单选按钮 -->  
    <label>性别:</label>  
    <input type="radio" id="male" name="gender" value="male" checked>  
    <label for="male"></label>  
    <input type="radio" id="female" name="gender" value="female">  
    <label for="female"></label>  
  
    <br>  
  
    <!-- 复选框 -->  
    <input type="checkbox" id="subscribe" name="subscribe" checked>  
    <label for="subscribe">订阅推送信息</label>  
  
    <br>  
  
    <!-- 下拉列表 -->  
    <label for="country">国家:</label>  
    <select id="country" name="country">  
        <option value="cn">CN</option>  
        <option value="usa">USA</option>  
        <option value="uk">UK</option>  
    </select>  
  
    <br>  
  
    <!-- 提交按钮 -->  
    <input type="submit" value="提交">  
</form>

<form action="/" method="post">
    <!-- 文本输入框 -->
    <label for="name">用户名:</label>
    <input type="text" id="name" name="name" required>

<br>

<!-- 密码输入框 -->
    <label for="password">密码:</label>
    <input type="password" id="password" name="password" required>

<br>

<!-- 单选按钮 -->
    <label>性别:</label>
    <input type="radio" id="male" name="gender" value="male" checked>
    <label for="male">男</label>
    <input type="radio" id="female" name="gender" value="female">
    <label for="female">女</label>

<br>

<!-- 复选框 -->
    <input type="checkbox" id="subscribe" name="subscribe" checked>
    <label for="subscribe">订阅推送信息</label>

<br>

<!-- 下拉列表 -->
    <label for="country">国家:</label>
    <select id="country" name="country">
        <option value="cn">CN</option>
        <option value="usa">USA</option>
        <option value="uk">UK</option>
    </select>

<br>

<!-- 提交按钮 -->
    <input type="submit" value="提交">
</form>


HTML 表单 - 输入元素&lt;input&gt;

多数情况下被用到的表单标签是输入标签 &lt;input&gt;

输入类型是由 type 属性定义。

接下来我们介绍几种常用的输入类型。


文本域(Text Fields)

文本域通过 &lt;input type="text"&gt; 标签来设定,当用户要在表单中键入字母、数字等内容时,就会用到文本域。

实例

html
&lt;form&gt;  
First name: &lt;input type="text" name="firstname"&gt;&lt;br&gt;  
Last name: &lt;input type="text" name="lastname"&gt;  
&lt;/form&gt;

浏览器显示如下:

<form>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
</form>

**注意:**表单本身并不可见。同时,在大多数浏览器中,文本域的默认宽度是 20 个字符。


密码字段(password)

密码字段通过标签 &lt;input type="password"&gt; 来定义:

实例

html
&lt;form&gt;  
Password: &lt;input type="password" name="pwd"&gt;  
&lt;/form&gt;

浏览器显示效果如下: <form>
Password: <input type="password" name="pwd">
</form>

**注意:**密码字段字符不会明文显示,而是以星号 * 或圆点 . 替代。


单选按钮(Radio Buttons)

html
&lt;input type="radio"&gt; 标签定义了表单的单选框选项:

实例

html
&lt;form action=""&gt;  
&lt;input type="radio" name="sex" value="male"&gt;&lt;br&gt;  
&lt;input type="radio" name="sex" value="female"&gt;
&lt;/form&gt;

浏览器显示效果如下:

<form action="">
<input type="radio" name="sex" value="male">男<br>
<input type="radio" name="sex" value="female">女
</form>


复选框(Checkboxes)

html
&lt;input type="checkbox"&gt; 定义了复选框。

复选框可以选取一个或多个选项:

实例

html
&lt;form&gt;  
&lt;input type="checkbox" name="vehicle" value="Bike"&gt;我喜欢自行车&lt;br&gt;  
&lt;input type="checkbox" name="vehicle" value="Car"&gt;我喜欢小汽车  
&lt;/form&gt;

浏览器显示效果如下: <form>
<input type="checkbox" name="vehicle" value="Bike">我喜欢自行车<br>
<input type="checkbox" name="vehicle" value="Car">我喜欢小汽车
</form>


提交按钮(Submit)

html
&lt;input type="submit"&gt; 定义了提交按钮。

当用户单击确认按钮时,表单的内容会被传送到服务器。表单的动作属性 action 定义了服务端的文件名。

action 属性会对接收到的用户输入数据进行相关的处理:

实例

html
&lt;form name="input" action="html_form_action.php" method="get"&gt;  
Username: &lt;input type="text" name="user"&gt;  
&lt;input type="submit" value="Submit"&gt;  
&lt;/form&gt;

浏览器显示效果如下: <form name="input" action="html_form_action.php" method="get">
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form>

假如您在上面的文本框内键入几个字母,然后点击确认按钮,那么输入数据会传送到 html_form_action.php 文件,该页面将显示出输入的结果。

以上实例中有一个 method 属性,它用于定义表单数据的提交方式,可以是以下值:

  • post:指的是 HTTP POST 方法,表单数据会包含在表单体内然后发送给服务器,用于提交敏感数据,如用户名与密码等。

  • get:默认值,指的是 HTTP GET 方法,表单数据会附加在 action 属性的 URL 中,并以 ?作为分隔符,一般用于不敏感信息,如分页等。例如:https://www.runoob.com/?page=1,这里的 page=1 就是 get 方法提交的数据。

实例

html
&lt;!-- 以下表单使用 GET 请求发送数据到当前的 URL,method 默认位 GET。 --&gt;
&lt;form&gt;
  &lt;label&gt;Name:
    &lt;input name="submitted-name" autocomplete="name"&gt;
  &lt;/label&gt;
  &lt;button&gt;Save&lt;/button&gt;
&lt;/form&gt;

&lt;!-- 以下表单使用 POST 请求发送数据到当前的 URL。 --&gt;
&lt;form method="post"&gt;
  &lt;label&gt;Name:
    &lt;input name="submitted-name" autocomplete="name"&gt;
  &lt;/label&gt;
  &lt;button&gt;Save&lt;/button&gt;
&lt;/form&gt;

&lt;!-- 表单使用 fieldset, legend, 和 label 标签 --&gt;
&lt;form method="post"&gt;
  &lt;fieldset&gt;
    &lt;legend&gt;Title&lt;/legend&gt;
    &lt;label&gt;&lt;input type="radio" name="radio"&gt; Select me&lt;/label&gt;
  &lt;/fieldset&gt;
&lt;/form&gt;

``

Try it 更多实例

单选按钮(Radio buttons)

本例演示如何在 HTML 中创建单选按钮。

html
&lt;form action=""&gt;
&lt;input type="radio" name="sex" value="male"&gt;Male&lt;br&gt;
&lt;input type="radio" name="sex" value="female"&gt;Female
&lt;/form&gt;

复选框(Checkboxes)

本例演示如何在 HTML 页中创建复选框。用户可以选中或取消选取复选框。

html
&lt;form action=""&gt;
&lt;input type="checkbox" name="vehicle" value="Bike"&gt;I have a bike&lt;br&gt;
&lt;input type="checkbox" name="vehicle" value="Car"&gt;I have a car 
&lt;/form&gt;

简单的下拉列表

本例演示如何在 HTML 页面中创建简单的下拉列表框。下拉列表框是一个可选列表。

html
&lt;form action=""&gt;
&lt;select name="cars"&gt;
&lt;option value="volvo"&gt;Volvo&lt;/option&gt;
&lt;option value="saab"&gt;Saab&lt;/option&gt;
&lt;option value="fiat"&gt;Fiat&lt;/option&gt;
&lt;option value="audi"&gt;Audi&lt;/option&gt;
&lt;/select&gt;
&lt;/form&gt;

预选下拉列表

本例演示如何创建一个简单的带有预选值的下拉列表。

html
&lt;form action=""&gt;
&lt;select name="cars"&gt;
&lt;option value="volvo"&gt;Volvo&lt;/option&gt;
&lt;option value="saab"&gt;Saab&lt;/option&gt;
&lt;option value="fiat" selected&gt;Fiat&lt;/option&gt;
&lt;option value="audi"&gt;Audi&lt;/option&gt;
&lt;/select&gt;
&lt;/form&gt;

文本域(Textarea)

本例演示如何创建文本域(多行文本输入控件)。用户可在文本域中写入文本。可写入字符的字数不受限制。

html
&lt;textarea rows="10" cols="30"&gt;
我是一个文本框。
&lt;/textarea&gt;

创建按钮
本例演示如何创建按钮。你可以对按钮上的文字进行自定义。

html
&lt;form action=""&gt;
&lt;input type="button" value="Hello world!"&gt;
&lt;/form&gt;

Try it 表单实例

带边框的表单

本例演示如何在数据周围绘制一个带标题的框。

html
&lt;form action=""&gt;
&lt;fieldset&gt;
&lt;legend&gt;Personal information:&lt;/legend&gt;
Name: &lt;input type="text" size="30"&gt;&lt;br&gt;
E-mail: &lt;input type="text" size="30"&gt;&lt;br&gt;
Date of birth: &lt;input type="text" size="10"&gt;
&lt;/fieldset&gt;
&lt;/form&gt;

带有输入框和确认按钮的表单

本例演示如何向页面添加表单。此表单包含两个输入框和一个确认按钮。

html
&lt;form action="demo-form.php"&gt;
First name: &lt;input type="text" name="FirstName" value="Mickey"&gt;&lt;br&gt;
Last name: &lt;input type="text" name="LastName" value="Mouse"&gt;&lt;br&gt;
&lt;input type="submit" value="提交"&gt;
&lt;/form&gt;

带有复选框的表单

此表单包含两个复选框和一个确认按钮。

html
&lt;form action="demo-form.php" method="get"&gt;
  &lt;input type="checkbox" name="vehicle[]" value="Bike"&gt; I have a bike&lt;br&gt;
  &lt;input type="checkbox" name="vehicle[]" value="Car" checked="checked"&gt; I have a car&lt;br&gt;
  &lt;input type="submit" value="提交"&gt;
&lt;/form&gt;

带有单选按钮的表单

此表单包含两个单选框和一个确认按钮。

html
&lt;form action="demo-form.php" method="get"&gt;
  &lt;input type="radio" name="sex" value="Male"&gt; Male&lt;br&gt;
  &lt;input type="radio" name="sex" value="Female" checked="checked"&gt; Female&lt;br&gt;
  &lt;input type="submit" value="提交"&gt;
&lt;/form&gt;

从表单发送电子邮件

此例演示如何从表单发送电子邮件。

html
&lt;form action="MAILTO:someone@example.com" method="post" enctype="text/plain"&gt;
Name:&lt;br&gt;
&lt;input type="text" name="name" value="your name"&gt;&lt;br&gt;
E-mail:&lt;br&gt;
&lt;input type="text" name="mail" value="your email"&gt;&lt;br&gt;
Comment:&lt;br&gt;
&lt;input type="text" name="comment" value="your comment" size="50"&gt;&lt;br&gt;&lt;br&gt;
&lt;input type="submit" value="发送"&gt;
&lt;input type="reset" value="重置"&gt;
&lt;/form&gt;

评论区

欢迎留言、补充或勘误。

xiaoba.blog