学习要点:

    1.type 属性总汇

    2.type 属性解析

    主讲教师:李炎恢

    本章主要探讨 HTML5 中表单中 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** 元素解析

    1.type text 值时**

      1. <input type="text">

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

    属性名称 说明
    list指定为文本框提供建议值的 datalist 元素,其值为datalist 元素的 id 值
    maxlength设置文本框最大字符长度
    pattern用于输入验证的正则表达式
    placeholder输入字符的提示
    readonly文本框处于只读状态
    disabled文本框处于禁用状态
    size设置文本框宽度
    value设置文本框初始值
    required表明用户必须输入一个值,否则无法通过输入验证

    //设置文本框长度

      1. <input type="text" size="50">

    //设置文本框输入字符长度

      1. <input type="text" maxlength="10">

    //设置文本框的初始值

      1. <input type="text" value="初始值">

    //设置文本框输入提示

      1. <input type="text" placeholder="请输入内容">

    //设置文本提供的建议值

      1. <input list="footlist">
      2. <datalist id="footlist">
      3. <option value="苹果">苹果</option>
      4. <option value="桔子">桔子</option>
      5. <option value="香蕉" label="香蕉">
      6. <option value="梨子">
      7. </datalist>

    //设置文本框内容为只读,可以提交数据

      1. <input type="text" readonly>

    //设置文本框内容不可用,不可以提交数据

      1. <input type="text" disabled>

    2.type**** password值时

      1. <input type="password">

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

    属性名称说明
    maxlength设置密码框最大字符长度
    pattern用于输入验证的正则表达式
    placeholder输入密码的提示
    readonly密码框处于只读状态
    disabled文本框处于禁用状态
    size设置密码框宽度
    value设置密码框初始值
    required表明用户必须输入同一个值

    这里除了正则和验证需要放在下一节,其余和文本框一致。

    3.type**** search时

      1. <input type="search">

    解释:和文本框一致,在除 Firefox 浏览器的其他现代浏览器,会显示一个叉来取消搜索内容。额外属性也和 text 一致。

    4.type** number**range时

      1. <input type="number">
      2. <input type="range">

    解释:只限输入数字的文本框,不同浏览器可能显示方式不同。生成一个数值范围文本框,只是样式是拖动式。额外属性如下:

    属性名称说明
    list指定为文本框提供建议值的 datalist 元素,其值为datalist 元素的 id 值
    min设置可接受的最小值
    max设定可接受的最大值
    readonly设置文本框内容只读
    required表明用户必须输入一个值,否则无法通过输入验证
    step指定上下调节值的步长
    value指定初始值

    //范围和步长

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

    5.type**** date系列时

      1. <input type="date">
      2. <input type="month">
      3. <input type="time">
      4. <input type="week">
      5. <input type="datetime">
      6. <input type="datetime-local">

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

    6.type**** color时

      1. <input type="color">

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

    7.type** checkbox**radio时

      1. 音乐<input type="checkbox"> 体育<input type="checkbox">
      2. <input type="radio" name="sex" value="男"> <input type="radio" name="sex" value="女">

    解释:生成一个获取布尔值的复选框或固定选项的单选框。额外属性如下:

    属性名称说明
    checked设置复选框、单选框是否为勾选状态
    required表示用户必须勾选,否则无法通过验证
    value设置复选框、单选框勾选状态时提交的数据。默认为 on

    //默认勾选,默认值为 1

      1. <input type="checkbox" name="music" checked value="1">

    8.type** submitreset和 button**时

      1. <input type="submit">

    解释:生成一个按钮,三种模式:提交、重置和一般按钮,和<button>元素相同。

    值名称说明
    submit生成一个提交按钮
    reset生成一个重置按钮
    button生成一个普通按钮

    如果是 submit 时,还提供了和<button>元素一样的额外属性:formaction、formenctype、formmethod、formtarget 和 formnovalidate。

    9.type**** image时

      1. <input type="image" src="img.png">

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

    属性名称说明
    src指定要显示图像的 URL
    alt提供图片的文字说明
    width图像的长度
    height图像的高度
    提交额外属性formaction、formenctype、formmethod、formtarget和 formnovalidate。

    10.type** emailtel**url时

      1. <input type="email">
      2. <input type="tel">
      3. <input type="url">

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

    11.type**** hidden时

      1. <input type="hidden">

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

    12.type**** file时

      1. <input type="file">

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

    属性名称说明
    accept指定接受的 MIME 类型
    required表明用户必须提供一个值,否则无法通过验证
      1. accept="image/gif, image/jpeg, image/png"

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