学习要点:

    1.其他元素

    2.输入验证

    主讲教师:李炎恢

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

    一.其他元素

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

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

    1.**生成下拉列表**

      1. <select name="fruit">
      2.   <option value="1">苹果</option>
      3.   &lt;option value="2"&gt;橘子&lt;/option&gt;
      4.   &lt;option value="3"&gt;香蕉&lt;/option&gt;
      5. &lt;/select&gt;

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

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

    //设置高度并实现多选

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

    //默认首选

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

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

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

    2.**多行文本框**

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

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

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

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

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

    3.计算结果

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

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

    二.输入验证

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

    //必须填写一个值

      1. <input type="text" required>

    //限定在某一个范围内

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

    //使用正则表达式

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

    //禁止表单验证

      1. <form action="http://li.cc" novalidate>

    原文: https://wizardforcel.gitbooks.io/liyanhui-tutorials/content/13.html