学习要点:
1.其他元素
2.输入验证
主讲教师:李炎恢
本章主要探讨 HTML5 中表单中剩余的其他元素,然后重点了解一下表单的输入验证功能。
一.其他元素
表单元素还剩下几个元素没有讲解,包括下拉框列表 select、多行文本框 textarea、和 output 计算结果元素。
元素名称 |
说明 |
select |
生成一个下拉列表进行选择 |
optgroup |
对 select 元素进行编组 |
option |
select 元素中的项目 |
textarea |
生成一个多行文本框 |
output |
表示计算结果 |
1.生成下拉列表
<span style="color: #0000ff;"><span style="color: #800000;">select </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="fruit"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">option </span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="1"</span><span style="color: #0000ff;">></span>苹果<span style="color: #0000ff;"></span><span style="color: #800000;">option</span><span style="color: #0000ff;">></span> <br><span style="color: #0000ff;"> <span style="color: #800000;">option </span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="2"</span><span style="color: #0000ff;">></span>橘子<span style="color: #0000ff;"></span><span style="color: #800000;">option</span><span style="color: #0000ff;">></span> <br><span style="color: #0000ff;"> <span style="color: #800000;">option </span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="3"</span><span style="color: #0000ff;">></span>香蕉<span style="color: #0000ff;"></span><span style="color: #800000;">option</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">select</span><span style="color: #0000ff;">></span></span></span></span></span>
解释:
属性名称 |
说明 |
name |
设定提交时的名称 |
disabled |
将下拉列表禁用 |
form |
将表单外的下拉列表与某个表单挂钩 |
size |
设置下拉列表的高度 |
multiple |
设置是否可以多选 |
autofocus |
获取焦点 |
required |
选择验证,设置后必须选择才能通过 |
//设置高度并实现多选
<span style="color: #0000ff;"><span style="color: #800000;">select </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="fruit"</span><span style="color: #ff0000;"> size</span><span style="color: #0000ff;">="30"</span><span style="color: #ff0000;"> multiple</span><span style="color: #0000ff;">></span></span>
//默认首选
<span style="color: #0000ff;"><span style="color: #800000;">option </span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="2"</span><span style="color: #ff0000;"> selected</span><span style="color: #0000ff;">></span>橘子<span style="color: #0000ff;"></span><span style="color: #800000;">option</span><span style="color: #0000ff;">></span></span>
//使用 optgroup 进行分组,label 为分组名称,disabled 可以禁用分组
<span style="color: #0000ff;"><span style="color: #800000;">optgroup </span><span style="color: #ff0000;">label</span><span style="color: #0000ff;">="水果类"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">option </span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="1"</span><span style="color: #0000ff;">></span>苹果<span style="color: #0000ff;"></span><span style="color: #800000;">option</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">option </span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="2"</span><span style="color: #ff0000;"> selected</span><span style="color: #0000ff;">></span>橘子<span style="color: #0000ff;"></span><span style="color: #800000;">option</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">option </span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="3"</span><span style="color: #ff0000;"> label</span><span style="color: #0000ff;">="香蕉"</span><span style="color: #0000ff;">></span>香蕉<span style="color: #0000ff;"></span><span style="color: #800000;">option</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">optgroup</span><span style="color: #0000ff;">></span></span></span></span></span>
2.多行文本框
<span style="color: #0000ff;"><span style="color: #800000;">textarea </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="content"</span><span style="color: #0000ff;">></span>请留下您的建议! <span style="color: #0000ff;"></span><span style="color: #800000;">textarea</span><span style="color: #0000ff;">></span></span>
解释:生成一个可变更大小的多行文本框。属性如下:
属性名称 |
说明 |
name |
设定提交时的名称 |
form |
将表单外的多行文本框与某个表单挂钩 |
readonly |
设置多行文本框只读 |
disabled |
将多行文本框禁用 |
maxlength |
设置最大可输入的字符长度 |
autofocus |
获取焦点 |
placeholder |
设置输入时的提示信息 |
rows |
设置行数 |
cols |
设置列数 |
wrap |
设置是否插入换行符,有 soft 和 hard 两种 |
required |
设置必须输入值,否则无法通过验证 |
//设置行高和列宽,设置插入换行符
<span style="color: #0000ff;"><span style="color: #800000;">textarea </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="content"</span><span style="color: #ff0000;"> rows</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> cols</span><span style="color: #0000ff;">="30"</span><span style="color: #ff0000;"> wrap</span><span style="color: #0000ff;">="hard"</span><span style="color: #0000ff;">></span><span style="color: #800000;">textarea</span><span style="color: #0000ff;">></span></span>
3.计算结果
<span style="color: #0000ff;"><span style="color: #800000;">form </span><span style="color: #ff0000;">oninput</span><span style="color: #0000ff;">="res.value = num1.valueAsNumber * num2.valueAsNumber"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="number"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="num1"</span><span style="color: #0000ff;">></span><span style="color: #000000;"> x </span><span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="number"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="num2"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">output </span><span style="color: #ff0000;">for</span><span style="color: #0000ff;">="num1 num2"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="res"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">form</span><span style="color: #0000ff;">></span></span></span></span></span>
解释:output 就是计算两个文本框之间的值,其实就是内嵌了 JavaScript 功能。
二.输入验证
HTML5 对表单提供了输入验证检查方式,但这种验证还是比较简陋的,并且不同的浏览器支持的成熟度还不同。在大部分情况下,可能还是要借助 jQuery 等前端库来实现丰富的验证功能和显示效果。
//必须填写一个值
<span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> required</span><span style="color: #0000ff;">></span></span>
//限定在某一个范围内
<span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="number"</span><span style="color: #ff0000;"> min</span><span style="color: #0000ff;">="10"</span><span style="color: #ff0000;"> max</span><span style="color: #0000ff;">="100"</span><span style="color: #0000ff;">></span></span>
//使用正则表达式
<span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> placeholder</span><span style="color: #0000ff;">="请输入区号+座机"</span><span style="color: #ff0000;"> required pattern</span><span style="color: #0000ff;">="^[\d]{2,4}\-[\d]{6,8}$"</span><span style="color: #0000ff;">></span></span>
//禁止表单验证
<span style="color: #0000ff;"><span style="color: #800000;">form </span><span style="color: #ff0000;">action</span><span style="color: #0000ff;">="http://li.cc"</span><span style="color: #ff0000;"> novalidate</span><span style="color: #0000ff;">></span></span>