第六十七节,html表单元素

时间:2022-01-14 14:20:51

html表单元素

学习要点:
  1.表单元素总汇
  2.表单元素解析

本章主要探讨HTML5中表单元素,表单元素用于获取用户的输入数据。

 

一.表单元素总汇

HTML5的表单中,提供了各种可供用户输入的表单控件。

          元素名称                                        说明

            form          表示HTML表单

            input         表示用来收集用户输入数据的控件

          textarea        表示可以输入多行文本的控件

           select         表示用来提供一组固定的选项

           option         表示提供提供一个选项

          optgroup        表示一组相关的option元素

           button         表示可用来提交或重置的表单按钮(或一般按钮)

          datalist        定义一组提供给用户的建议值

          fieldset        表示一组表单元素

           legend         表示fieldset元素的说明性标签

            label         表示表单元素的说明标签

           output         表示计算结果

 

二.表单元素解析

1.<form>定义表单

解释:<form>元素主要是定义本身是一组表单。

          元素属性                               说明

       method                表示表单的发送方式:有POST和GET两种,默认GET,GET方式发送明码发送,在接收页面的url可以看到?表单元素名称=元素值

               POST方式发送,为加密的发送,接收页面的url看不到表单信息

           action               表示表单提交的页面,也就是接收表单的页面

   enctype        表示浏览器对发送给服务器的数据所采用的编码格式,只有上传我文件是才用到,multipart/form-data

               有三种:application/x-www-form-urlencoded(默认编码,enctype        不能将文件上传到服务器)、

               multipart/form-data (用于上传文件到服务器)、

                 text/plain (未规范的编码,不 建议使用,不同浏览器理解不同)

         name                 设置表单名称,以便程序调用

        target                 设置提交时的目标位置:_blank、_parent、_self、_top,

                 也就是接收表单页面以什么方式打开,是新建页面打开,还是当前页面打开,默认当前页面打开

          autocomplete              设置浏览器记住用户输入的数据,实现自动完成表单。默认为on自动完成,如果不想自动完成则设置off。就是输入框记录输入过的信息

        novalidate            设置是否执行客户端数据有效性检查,后面课程讲解。

<form method="get" name="rgj" action="2.html" enctype="multipart/form-data">
用户名:<input name="mch">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

2.<input>表示用户输入数据,输入框

解释:<input>元素默认情况会出现一个单行文本框,有五个属性。

      属性名称                                    说明

     autofocus           让光标聚焦在某个input元素上,让用户直接输入,不用点击输入框,光标就在输入框里

     disabled              禁用input元素,也就是输入框不能输入内容

   autocomplete      单独设置input元素的自动完成功能,就是输入框记录输入过的信息

       form               让表单外的元素和指定的表单挂钩提交,也就是在表单外的输入框要给表单form标签挂钩,数据才能提交出去

       type                input元素的类型,内容较多,将在下节课展开讲解

        name               定义input元素的名称,以便接收到相应的值

  value         设置输入框默认值

聚焦光标

<form>
用户名:<input name="mch" autofocus>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

禁用input元素,也就是输入框不能输入内容

<form>
用户名:<input name="mch" disabled>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

 

 禁止自动完成,就是输入框记录输入过的信息,如果表单全局做了设置,可以在给输入框做单独的设置

<form>
用户名:<input name="mch" autocomplete="off">
<button>提交</button>
</form>

设置输入框默认值

<form>
用户名:<input name="mch" autocomplete="off" value="123">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

表单外的input输入框,也就是在表单外的输入框要给表单form标签挂钩,数据才能提交出去,方法是输入框form=表单id值,如<input name="email"form="register">

<form method="get" id="register">
...
</form>
<input name="email"form="register">

3.<label>添加说明标签,将数框用<label>包起来,有两个用途,一个是点击用户名能定位光标,一个是利于css样式布局

<form>
<label>用户名:<input name="mch" autocomplete="off" value="123"></label>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

for属性关联输入框,for值为输入框id值,关联后点击用户名也能定位光标

<form>
<label for="yhm">用户名:</label>
<input name="mch" id="yhm" value="123">
<button>提交</button>
</form>

解释:<label>元素可以关联input,让用户体验更好。且更加容易设置CSS样式。

 

4.<fieldset>对表单进行编组

解释:<fieldset>元素可以将一些表单元素组织在一起,形成一个整体。

     属性名称                                   说明

       name               给分组定义一个名称

       form                让表单外的分组与表单挂钩,form 等于表单id值,这样表单外的分组数据才能提交

     disabled               禁用分组内的表单,就是分组内的输入框不能输入内容

<form>
<fieldset name="shur" disabled>
<label for="yhm">用户名:</label>
<input name="mch" id="yhm" value="123">
</fieldset>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

 

5.<legend>添加分组说明标签,给分组加上一个标题,写在分组里

<form>
<fieldset name="shur" disabled>
<legend>这是一个分组</legend>
<label for="yhm">用户名:</label>
<input name="mch" id="yhm" value="123">
</fieldset>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

解释:<legend>元素给分组加上一个标题。

 

6.<button>添加按钮

<button type="submit">< button>

解释:<button>元素添加一个按钮,type属性有如下几个值:

      值名称             属性值                        说明

  type

              submit        表示按钮的作用是提交表单,默认

               reset        表示按钮的作用是重置表单,还原表单默认值,如果没有默认值就是重置为空

              button        表示按钮为一般性按钮,没有任何作用提交表单,按钮,主要结合js使用

<form>
<label for="yhm">用户名:</label>
<input name="mch" id="yhm">
<button type="submit">提交</button>
<button type="reset">重置</button>
<button type="button">按钮</button>
</form>

效果:

第六十七节,html表单元素

button的type属性为submit时,提交时还会提供额外的属性。也就是提交时更改<form>标签的属性

      属性名称                                        说明

        form              指定按钮关联的表单,在表单外的提交,关联到一个表单,属性值为<form>标签的id值

    formaction            覆盖form元素的action属性,提教时更改<form>标签的action属性,formaction的值就会等于<form>标签的action属性

<form method="get" name="rgj" action="2.html" enctype="multipart/form-data">
用户名:<input name="mch">
<button formaction="http://www.haosou.com">提交</button>
</form>

   formenctype       覆盖form元素的enctype属性,原理同上

    formmethod             覆盖form元素的method属性,原理同上

    formtarget               覆盖form元素的target属性,原理同上

 formnovalidate           覆盖form元素的novalidate属性,原理同上

 

表单外关联提交,指定按钮关联的表单,在表单外的提交,关联到一个表单,form属性值为<form>标签的id值

<form method="get" id="jk" name="rgj" action="2.html" enctype="multipart/form-data">
用户名:<input name="mch">
</form>
<button form="jk">提交</button>

input元素详解

 input元素的type属性,输入框

type属性总汇

input元素可以用来生成一个供用户输入数据的简单文本框。在默认的情况下,什么样的数据均可以输入。而通过不同的属性值,可以限制输入的内容。

           属性名称                                 说明

             text                 一个单行文本框,默认行为

           password              隐藏字符的密码框

            search               搜索框,在某些浏览器键入内容会出现叉标记取消

     submit、reset、button    生成一个提交按钮、重置按钮、普通按钮

        number、range           只能输入数值的框;只能输入在一个数值范围的框

       checkbox、radio           复选框,用户勾选框;单选框,只能在几个中选一个

         image、color              生成一个图片按钮,颜色代码按钮

       email、tel、url              生成一个检测电子邮件、号码、网址的文本框

     date、month、time、

       week、datetime、            获取日期和时间

        datetime-local

            hidden               生成一个隐藏控件

             file                    生成一个上传控件

input元素的属性type值为text时,输入框

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

input元素的属性type值为text时,呈现的就是一个可以输入任意字符的文本框,这也是默认行为。并且,还提供了一些额外的属性。

属性名称                       属性值                                 说明

 list                 <datalist>标签的id值        指定为文本框提供建议值的datalist元素,其值为datalist元素的id值,就是给输入框设置下拉

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" list="abc">
<button>提交</button>
</form>
<datalist id="abc">
<option>苹果</option> <!--方法1,选择苹果输入框输入苹果-->
<option value="2">香蕉</option> <!--方法2,选择香蕉输入框输入2-->
</datalist>

效果:

第六十七节,html表单元素

maxlength            最大输入数             设置文本框最大字符长度

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" maxlength="5">
<button>提交</button>
</form>

效果:

  第六十七节,html表单元素  

pattern              设置内容                   用于输入验证的正则表达式,输入内容与设置内容相同才能提交

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" pattern="456789">
<button>提交</button>
</form>

 效果:

第六十七节,html表单元素

placeholder                      设置输入框提示内容                               输入字符的提示,给输入框写一个提示信息

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" placeholder="请输入用户名">
<button>提交</button>
</form>

 效果:

第六十七节,html表单元素

readonly                         无                                                      文本框处于只读状态,数据可以提交

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" value="gffff" readonly>
<button>提交</button>
</form>

 效果:

第六十七节,html表单元素  

disabled                         无                                                      本框处于禁用状态,数据不可提交

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" value="gffff" disabled>
<button>提交</button>
</form>

 效果:

第六十七节,html表单元素    

  size                            像素                                                     设置文本框宽度

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" size="100">
<button>提交</button>
</form>

 效果:

第六十七节,html表单元素    

value                           默认值                                                 设置文本框初始值

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" value="456">
<button>提交</button>
</form>

 效果:

第六十七节,html表单元素  

required                        无                                                       表明用户必须输入一个值,否则无法通过输入验证,提交会提示输入信息

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="text" required >
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

input元素的属性type值为password时,密码框

<form method="get" name="rgj" action="2.html">
用户名:<input name="mch" type="password" required >
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

input元素的属性type值为password时,一般用于密码框的输入,所有的字符都会显示星号。 密码框也有一些额外属性。 

属性名称                 属性值                             说明

maxlength          字符长度数        设置密码框最大字符长度,超过设置的长度不能输入

pattern                  设置密码内容                    用于输入验证的正则表达式,输入密码与设置密码不相同不能提交

placeholder             设置密码框提示信息           输入密码的提示

readonly                 无                                 密码框处于只读状态,默认值可以提交

disabled          无                       文本框处于禁用状态,不能提交

size                       像素                               设置密码框宽度

value                    设置默认值                       设置密码框初始值

required                无                                  表明用户必须输入同一个值,没有输入内容无法提交,给出提示

注意:使用方法给输入框一样

input元素的属性type值为search时,搜索框

<form method="get" name="rgj" action="2.html">
<input name="mch" type="search" required >
<button>搜索</button>
</form>

效果:

第六十七节,html表单元素

和文本框一致,在除火狐浏览器的其他现代浏览器,会显示一个叉来取消 搜索内容。额外属性也和text输入框一致。参照输入框

input元素的属性type值为number时,带输入拖动框

<form method="get" name="rgj" action="2.html">
<input type="number" name="xz" min="1" max="100" value="10">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

input元素的属性type值为range时,不带输入拖动框

<form method="get" name="rgj" action="2.html">
<input type="range" name="xz" min="1" max="100" value="10">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

注意:以上两种拖动框,不同浏览器可能显示方式不同。生成一个数值范围文本框,只是样式是拖动式。两种拖动框额外属性如下:

属性名称                属性值                                                 说明

list        <datalist>标签的id值        指定为文本框提供建议值的datalist元素,其值为datalist元素的id值,详情见输入框list属性

min             设置最小数值              设置可接受的最小值

max              设置最大数值              设定可接受的最大值

readonly          无                   设置文本框内容只读

required          无                   表明用户必须输入一个值,否则无法通过输入验证

step                     步长数                                               指定上下调节值的步长,比如设置2,拖动滑块就是2468这样2位步长的跨度

value            设置默认值              指定初始值

input元素的属性type值为date、month、time、week、datetime、datetime-local系列时,时间日期系统框

<form method="get" name="rgj" action="2.html">
<input type="date"> <!--年月日-->
<input type="month"> <!--年月-->
<input type="time"> <!--时分-->
<input type="week"> <!--年周-->
<input type="datetime"> <!--年月日时分-->
<input type="datetime-local"> <!--系统时区,年月日时分-->
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

实现文本框可以获取日期和时间的值,但支持的浏览器不完整。我们测试Chrome 和Opera支持,其他浏览器尚未支持。所以,在获取日期和时间,目前还是推荐使用jQuery 等前端库来实现日历功能。额外属性和number一致。

属性名称                属性值                                                 说明

list        <datalist>标签的id值        指定为文本框提供建议值的datalist元素,其值为datalist元素的id值,详情见输入框list属性

min             设置最小数值              设置可接受的最小值

max              设置最大数值              设定可接受的最大值

readonly          无                   设置文本框内容只读

required          无                   表明用户必须输入一个值,否则无法通过输入验证

value            设置默认值              指定初始值

input元素的属性type值为color时,颜色选择框

<form method="get" name="rgj" action="2.html">
<input type="color" name="yse">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

解释:实现文本框获取颜色的功能,最新的现代浏览器测试后IE不支持,其余的都能 显示一个颜色对话框提供选择。

input元素的属性type值为checkbox时,复选框,也就是多选框

<form method="get" name="rgj" action="2.html">
音乐:<input type="checkbox" name="yse" value="5">
体育:<input type="checkbox" name="tu" value="6">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

input元素的属性type值为radio时,单选框

<form method="get" name="rgj" action="2.html">
<input type="radio" name="yse" value="5">男
<input type="radio" name="yse" value="6">女
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

复选框或单选框。额外属性如下: 

属性名称               属性值                    说明

checked               无            设置复选框、单选框是否为勾选状态

required              无            表示用户必须勾选,否则无法通过验证,没有勾选会给提示

value                   默认值          设置复选框、单选框勾选状态时提交的数据。

input元素的属性type值为submit、reset、button时,生成按钮

<form method="get" name="rgj" action="2.html">
<input type="submit"> <!--生成一个提交按钮-->
<input type="reset"> <!--生成一个重置按钮-->
<input type="button" value="按钮"> <!--生成一个普通按钮-->
</form>

解释:生成一个按钮,三种模式:提交、重置和一般按钮,如果是submit提交时,还提供了和<button>元素一样的额外属性:formaction、formenctype、formmethod、formtarget和formnovalidate。详情见<button>元素额外属性

input元素的属性type值为image时,图片提交按钮

<form method="get" name="rgj" action="2.html">
<input type="text" name="sdf">
<input type="image" src="723.png">
</form>

效果:

第六十七节,html表单元素

解释:生成一个图片按钮,点击图片就实现提交功能,并且传送了分区响应数据。图片 按钮也提供了一些额外属性。

属性名称                   属性值                          说明

 src              图片路径        指定要显示图像的URL

 alt               说明文字        提供图片的文字说明

 width            像素          图像的长度

 height           像素          图像的高度

提交额外属性formaction、formenctype、formmethod、formtarget 和formnovalidate。详情见<button>元素额外属性

input元素的属性type值为email、tel、url时,邮件地址框,电话框,网址框

<form method="get" name="rgj" action="2.html">
<input type="email" name="sdf1"> <!--邮件地址框-->
<input type="tel" name="sdf2"> <!--电话框-->
<input type="ur" name="sdf3"> <!--网址框-->
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

解释:email为电子邮件格式、tel为电话格式、url为网址格式。但对于这几种类型,浏览器支持是不同的email支持比较好,现在浏览器都支持格 式验证;tel基本不支持;url支持一般,部分浏览器只要检测到http://就能通过。额外属性和text 一致。详情见输入框

input元素的属性type值为hidden时,隐藏框

<form method="get" name="rgj" action="2.html">
<input type="hidden" name="id" value="1">
<button>提交</button>
</form>

解释:生成一个隐藏控件,一般用于表单提交时关联主键ID提交,而这个数据作为隐藏存在

input元素的属性type值为file时,上传框

<form method="get" name="rgj" action="2.html">
<input type="file" name="shch" accept="image/png,image/ipg">
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

解释:生成一个文件上传控件,用于文件的上传。额外提供了一些属性:

属性名称             属性值           说明

accept            指定上传类型       指定接受的MIME类型

required          无            表明用户必须提供一个值,否则无法通过验证

<select> 下拉框

<form method="get" name="rgj" action="2.html">
<select name="shuig">
<option value="1">苹果</option>
<option value="2">香蕉</option>
<option value="3">甘蔗</option>
</select>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

<optgroup>分组元素

<form method="get" name="rgj" action="2.html">
<select name="shp">
<optgroup label="水果类">
<option value="1">苹果</option>
<option value="1">香蕉</option>
</optgroup>
<optgroup label="粗粮">
<option value="1">大米</option>
<option value="1">小麦</option>
</optgroup>
</select>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

解释:<select>下拉列表元素至少包含一个<option>子元素,才能形成有效的选项列表。<select>元素包含两个子元素<option>项目元素和<optgroup>分组元素,还包含了一些额外属性。 

<select>属性名称                属性值                         说明

 name                  给下拉框设置一个名称       设定提交时的名称

 disabled               无               将下拉列表禁用

 form                  值为< form >表单id值      将表单外的下拉列表与某个表单挂钩

 size                  行数               设置下拉列表的高度

 multiple               无                 设置是否可以多选

autofocus           无               获取焦点

required             无               选择验证,设置后必须选择才能通过

<textarea>文本框

<form method="get" name="rgj" action="2.html">
<textarea name="wb" placeholder="请输入您的内容" required></textarea>
<button>提交</button>
</form>

效果:

第六十七节,html表单元素

 解释:生成一个可变更大小的多行文本框。属性如下:

 <textarea>属性名称              属性值                            说明

 name                   名称                设定提交时的名称

 form                   值为<form >标签的id值       将表单外的多行文本框与某个表单挂钩

 readonl                 无                 设置多行文本框只读

 disabled                  无                 将多行文本框禁用

 maxlength                字符数              设置最大可输入的字符长度

 autofocus               无                  获取焦点

 placeholder              提示信息             设置输入时的提示信息

 rows                    文本框行高数           设置行数

 cols                    文本框列宽高数            设置列数

 wrap                    soft和hard             设置文字长度超出文本框宽度时,是否插入换行符,有soft(否)和hard(是)两种

 required                 无                设置必须输入值,否则无法通过验证

output计算结果,计算两个文本框之间的值

<form oninput="res.value = num1.valueAsNumber* num2.valueAsNumber">
<input type="number" id="num1">x <input type="number" id="num2">
<output for="num1 num2" name="res">
</form>

效果:

第六十七节,html表单元素

解释:output就是计算两个文本框之间的值,其实就是内嵌了JavaScript功能

输入验证

HTML5对表单提供了输入验证检查方式,但这种验证还是比较简陋的,并且不同的浏览器支持的成熟度还不同。在大部分情况 ,可能还是要借助jQuer 等前端库来实现丰富的验证功能和显示效果。

输入框验证required,必须填写一个值

<form method="get" name="rgj" action="2.html">
<input type="text" required>
<button>提交</button>
</form>

拖动框验证,限定在某一个范围内

<form method="get" name="rgj" action="2.html">
<input type="number" min="10" max="100">
<button>提交</button>
</form>

使用正则表达式 验证

<form method="get" name="rgj" action="2.html">
<input type="text" name="hm" placeholder="请输入区号+座机" pattern="^[\d]{2,4}\-[\d]{6,8}$">
<button>提交</button>
</form>

浏览器支持的成熟度还不同

禁止表单验证novalidate

<form method="get" name="rgj" action="2.html" novalidate>
<button>提交</button>
</form>