云切图

HTML

HTML标签复习,帮你快速掌握html标签,助推学生快速完成网页作业

首页 > 前端笔记 > HTML

html5表单元素详解下

作者:admin 发布时间:2022-06-11 点击数:

本章主要探讨 HTML5 中表单中剩余的其他元素,然后重点了解一下表单的输入验证功能。

一.其他元素

表单元素还剩下几个元素没有讲解,包括下拉框列表 select、多行文本框 textarea、 和 output 计算结果元素。

元素名称说明
select生成一个下拉列表进行选择
optgroup对 select 元素进行编组
optionselect 元素中的项目
textarea生成一个多行文本框
output表示计算结果

1.生成下拉列表

<select name="fruit">
	<option value="1">苹果</option>
	<option value="2">橘子</option>
	<option value="3">香蕉</option>
</select>

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

属性名称说明
name设定提交时的名称
disabled将下拉列表禁用
form将表单外的下拉列表与某个表单挂钩
size设置下拉列表的高度
multiple设置是否可以多选
autofocus获取焦点
required选择验证,设置后必须选择才能通过

设置高度并实现多选

<select name="fruit" size="30" multiple>

默认首选

<option value="2" selected>橘子</option>

使用 optgroup 进行分组,label 为分组名称,disabled 可以禁用分组

<optgroup label="水果类">
	<option value="1">苹果</option>
	<option value="2" selected>橘子</option>
	<option value="3" label="香蕉">香蕉</option>
</optgroup>

2.多行文本框

<textarea name="content">请留下您的建议!</textarea>

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

属性名称说明
name设定提交时的名称
form将表单外的多行文本框与某个表单挂钩
readonly设置多行文本框只读
disabled将多行文本框禁用
maxlength设置最大可输入的字符长度
autofocus获取焦点
placeholder设置输入时的提示信息
rows设置行数
cols设置列数
wrap设置是否插入换行符,有 soft 和 hard 两种
required设置必须输入值,否则无法通过验证

设置行高和列宽,设置插入换行符

<textarea name="content" rows="20" cols="30" wrap="hard"></textarea>

3.计算结果

<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>

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

二.输入验证

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

必须填写一个值

<input type="text" required>

限定在某一个范围内

<input type="number" min="10" max="100">

使用正则表达式

<input type="text" placeholder="请输入区号+座机" required pattern="^[\d]{2,4}\-[\d]{6,8}$">

禁止表单验证

<form action="http://www.baidu.com" novalidate>

源码实操

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>HTML5表单元素[下]</title>
  <style type="text/css">
    *{padding: 0; margin: 0;}
    ul,li{ list-style-type: none; }
    a{ text-decoration: none; color:#000;}
    body{font-family: '微软雅黑';}
    dl{width:100%; height: auto; padding: 20px 0; border-bottom: 1px solid #ccc;}
    dl dt{ padding-bottom: 5px; color: red; text-indent: 5px;}
    dl dd{ padding-bottom: 5px; }
    input{width:50%; height: 30px; line-height: 30px; display: block; margin:0 0 10px 5px; text-indent: 5px;}
    select{width:50%;}
</style>
</head>
<body>
<form action=""><!--form标签加上 novalidate 属性将禁止提交表单-->
  <dl>
    <dt>下拉菜单</dt>
    <dd>
      <select name="fruit">
        <option value="">请选择</option>
        <option value="1" selected="selected">苹果</option>
        <option value="2">香蕉</option>
        <option value="3">梨子</option>
      </select>
    </dd>
  </dl>
  <dl>
    <dt>下拉菜单(设置默认 设置高度 在设置多选)</dt>
    <dd>
      <select name="fruit" size="10" multiple="multiple">
        <option value="">请选择</option>
        <option value="1" selected="selected">苹果</option>
        <option value="2">香蕉</option>
        <option value="3">梨子</option>
      </select>
    </dd>
  </dl>
  <dl>
    <dt>下拉菜单(设置分组)</dt>
    <dd>
      <select name="fruit">
        <optgroup label="水果类">
          <option value="1" selected="selected">苹果</option>
          <option value="2">香蕉</option>
          <option value="3">梨子</option>
        </optgroup>
        <optgroup label="美食类">
          <option value="1">酸菜鱼</option>
          <option value="2" selected="selected">火锅</option>
          <option value="3">自助餐</option>
        </optgroup>
      </select>
    </dd>
  </dl>

  <dl>
    <dt>多行文本</dt>
    <dd>
      <textarea name="body" cols="30" rows="10" placeholder="发布文章内容" wrap="hard"></textarea>
    </dd>
  </dl>

  <dl>
    <dt>输入验证</dt>
    <dd>
      <input type="text" required placeholder="此项必须填写">
      <input type="number" min="10" max="100" step="2">
      <input type="text" placeholder="请输入区号+座机" required pattern="^[\d]{2,4}\-[\d]{6,8}$">
    </dd>
    <dd>
      <input type="submit" value="提交表单">
    </dd>
  </dl>
</form>
</body>
</html>

关注我们共同进步

  • 扣扣交流群

  • 微信公众号

  • 私技术顾问

标签:

html html教程
嘿,我来帮您!