Skip to content

四、表单

在HTML中,一个完整的表单通常由表单控件(也称为表单元素)、提示信息和表单域3个部分构成。表单目的是为了收集用户信息。

1.input控件

html
<input type="属性值" value="你好">
  • input 输入的意思
  • <input />标签为单标签
  • type属性设置不同的属性值用来指定不同的控件类型

1.1 常用属性:

1.1.1 type

type 属性规定要显示的 <input> 元素的类型。

注意:所有表单控件必须卸载form标签里

属性值描述
button按钮
text文本框
textarea文本域
checkbox复选框
radio单选框
password密码框,内容会以·······的形式显示
reset重置按钮,会重置所在form标签内所有input的值
submit提交按钮,提交所在form标签内表单的数据
file上传文件控件
hidden定义隐藏输入字段。
number(H5)只能输入数字的文本框
tel(H5)点击提交按钮,会自动验证是否为电话号码,否则提示
email(H5)点击提交按钮,会自动验证是否为邮箱,否则提示
color(H5)取色器
range(H5)滑动输入条
url(H5)点击提交按钮,会自动验证是否为网址,否则提示
date定义 date 控件(包括年、月、日,不包括时间)。
datetime定义 date 和 time 控件(包括年、月、日、时、分、秒、几分之一秒,基于 UTC 时区)。
datetime-local定义 date 和 time 控件(包括年、月、日、时、分、秒、几分之一秒,不带时区)。
month定义 month 和 year 控件(不带时区)。
week定义 week 和 year 控件(不带时区)。
html
<form action="">
    普通按钮:<input type="button" value="按钮"><br>
    提交按钮:<input type="submit"><br>
    重置按钮:<input type="reset"><br>
    文本框:<input type="text"><br>
    复选框:<input type="checkbox"><br>
    单选框:<input type="radio"><br>
    数字框:<input type="number"><br>
    密码框:<input type="password"><br>
    邮箱框:<input type="email"><br>
    隐藏框:<input type="hidden"><br>

    提交图片:<input type="image"><br>

    日期选择框:<input type="date"><br>
    日期选择框:<input type="datetime"><br>
    本地日期选择器:<input type="datetime-local"><br>
    年月选择器:<input type="month">
    时间选择器:<input type="time"><br>

    取色器:<input type="color"><br>
    滑动输入条:<input type="range"><br>
    搜索框:<input type="search"><br>
    电话框:<input type="tel"><br>
    url选择:<input type="url"><br>
    文件上传:<input type="file"><br>
</form>

1.1.2 value

input控件的默认值

html
用户名:<input type="text"  name="username" value="默认值">

1.2.3 name

  • name表单的名字, 这样,后台可以通过这个name属性找到这个表单。 页面中的表单很多,name主要作用就是用于区别不同的表单。
  • name属性后面的值,是我们自己定义的。
  • radio和checkbox  如果是一组,我们必须给他们命名相同的名字 name
  • name属性,我们现在用的较少,但是,当我们学ajax 和后台的时候,是必须的。

单选框组

html
<form action="">
    <input type="radio" name="sex" />男
    <input type="radio" name="sex" />女
</form>

image-20230610231638805

复选框组

html
<form action="">
    <input type="checkbox" name="sex" />唱
    <input type="checkbox" name="sex" />跳
    <input type="checkbox" name="sex" />rap
    <input type="checkbox" name="sex" />篮球
</form>

image-20230610231815132

1.2.4 placehoder

  • 属性提供可描述输入字段预期值的提示信息

  • placeholder 属性是 HTML5 中的新属性。

  • 该提示会在输入字段为空时显示,并会在字段获得焦点时消失。

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

html
<input type="text" placeholder="请输入账号" />

image-20230610232411474

1.2.5 checked

  • 表示默认选中状态。 较常见于单选按钮和复选按钮。
html
性    别:
<input type="radio" name="sex" value="男" checked="checked" />男
<input type="radio" name="sex" value="女" />女

image-20230610232449072

2.label标签

  • label 标签为 input 元素定义标注(标签)。

  • label标签主要目的是为了提高用户体验。为用户提高最优秀的服务。

作用用于绑定一个表单元素, 当点击label标签的时候, 被绑定的表单元素就会获得输入焦点。

用法

  • 第一种用法就是用label标签直接包含input表单, 适合单个表单选择,注意这种用法不能添加for属性

  • 第二种用法 for 属性规定 label 与哪个表单元素绑定(通过id)。

html
<label> 用户名: 
    <input type="radio" name="usename" value="请输入用户名">   
</label>


<label for="sex">男</label>
<input type="radio" name="sex"  id="sex">

3.textarea文本域

  • 通过textarea控件可以轻松地创建多行文本输入框.

  • cols="每行中的字符数" rows="显示的行数"  我们实际开发不用

html
<textarea cols="30" rows="10">默认值</textarea>

image-20230610233443986

textarea属性

属性描述
autofocus(H5)autofocus规定当页面加载时,文本区域自动获得焦点
colsnumber规定文本区域内可见的宽度。
rowsnumber规定文本区域内可见的行数。
disableddisabled规定禁用文本区域。
form(H5)form_id定义文本区域所属的一个或多个表单。
maxlength(H5)number规定文本区域允许的最大字符数。
nametext规定文本区域的名称。
placeholdertext规定一个简短的提示,描述文本区域期望的输入值。
readonlyreadonly规定文本区域为只读。
required(H5)required规定文本区域是必需的/必填的
wrap(H5)hard soft规定当提交表单时,文本区域中的文本应该怎样换行。

可以通过css属性resize设置文本域禁止调整大小

css
textarea{
    resize: none;
}

4.select下拉列表

  • 如果有多个选项让用户选择,为了节约空间,我们可以使用select控件定义下拉列表。
  • option 标签中定义selected =" selected"时,当前项即为默认选中项。
html
<select>
    <option>选项1</option>
    <option selected>选项2</option>
    <option>选项3</option>
</select>

image-20230610233654589

5.form表单域

  • 收集的用户信息通过form表单域传递给服务器
  • 在HTML中,form标签被用于定义表单域,以实现用户信息的收集和传递,form中的所有内容都会被提交给服务器。
html
<form action="url地址" method="提交方式" name="表单名称">
  各种表单控件
</form>

常用属性:

  • 每个表单都应该有自己表单域。后面学 ajax 后台交互的时候,必须需要form表单域。
属性属性值作用
actionurl地址用于指定接收并处理表单数据的服务器程序的url地址。
methodget/post用于设置表单数据的提交方式,其取值为get或post。
name名称用于指定表单的名称,以区分同一个页面中的多个表单。

6.GET 和 POST 的区别

  • GET在浏览器回退时是无害的,而POST会再次提交请求。

  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

  • GET请求只能进行url编码,而POST支持多种编码方式。

  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

  • GET请求大小一般是(1024字节),http协议并没有限制,而与服务器,操作系统有关,POST理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小。

  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

7.acesskey 属性功能

表示访问Label 标签所绑定的元素的热键,当您按下alt+热键,所绑定的元素将获取焦点。

局限性:accessKey 属性所设置的快捷键不能与浏览器的快捷键冲突,否则将优先激活浏览器的快捷键。

html
<!-- 按下 alt+s 此input会自动聚焦 -->
<input type="text" accesskey="s">

**注释:**以下元素支持 accesskey 属性:<a>, <area>, <button>, <input>, <label>, <legend> 以及 <textarea>

MIT Licensed