HTML5新增的input类型及属性

729 阅读4分钟

「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战

一、input新增的类型

1-1、验证型input

验证型input包括:

1-1-1、email

  • 语法:<input type="email" />
  • 当输入非法邮箱后,点击提交会提示校验内容
    • 要注意的是必须按钮必须是submit,且需要form表单配合(submit按钮配合form表单才会有效果)
  • 因为email类型的文本框采用了浏览器内置的验证机制,内置的验证机制必须使用submit按钮才会触发

1-1-2、tel

  • 语法:<input type="tel" />
  • tel类型的文本框不具备完整的验证功能,如果想达到验证功能,需要结合pattern属性

1-1-3、url

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01-新增input元素类型-验证型</title>
  </head>
  <body>
    <form action="post">
      <p><label>电子邮件:<input type="email" /></label></p>
      <p><label>手机号:<input type="tel" /></label></p>
      <input type="submit" value="提交">
    </form>
  </body>
</html>

1-2、取值型input

1-2-1、range

  1. 语法:<input type="range" min="最小值" max="最大值" step="间隔数" value="初始值"/>
  2. 常用属性
  • min:最小值,可以是整数也可以是小数
  • max:最大值,可以是整数也可以是小数
  • step:间隔数,可以是整数也可以是小数
  • value:设置初始值
    • 当设置了初始值后,滑块会显示到初始值的位置
    • 当设置的初始值大于最大值/小于最小值时,滑块展示的位置与value值为设置的max/min
    • 显示的初始值位置与step有关,比如最小值为-10,最大值为10,step为2,设置value为5,但是此时滑块会展示在6的位置!

1-2-2、number

  1. 语法:<input type="number" min="最小值" max="最大值" step="间隔数" value="初始值"/>
  2. 常用属性
  • min:最小值,可以是整数也可以是小数
  • max:最大值,可以是整数也可以是小数
  • step:间隔数,可以是整数也可以是小数
  • value:设置初始值
    • 显示的初始值与step无关,比如最小值是-10,最大值是10,step为2,当设置value为5时,数字也展示5只不过在增加或减少数字时,数字不会先加2或减2而是先变为6或4,然后再2个2个的变化
    • 当设置的初始值大于最大值/小于最小值时,最初展示的数字与value值为所设置的值,但是一旦改变数字时便会变成设置的max/min

1-2-3、color

  1. 语法:<input type="color" value="初始值"/>
  2. 常用属性:
  • value:用来设置颜色的初始值,格式必须是十六进制如#F1F1F1,而不能是关键字或rgba

1-2-4、date

  1. 语法:<input type="date" value="初始值"/>
  2. 常用属性:
  • value:用来设置日期的初始值,格式必须是yyyy-MM-dd(如2021-12-24)

1-2-5、time

  1. 语法:<input type="time" value="初始值"/>
  2. 常用属性:
  • value:用来设置时间的初始值,格式必须是HH:mm(如11:06)

1-2-6、month

  1. 语法:<input type="month" value="初始值"/>
  2. 常用属性:
  • value:用来设置初始值,格式必须是yyyy-MM(如:2021-12)

1-2-7、week

  1. 语法:<input type="week" value="初始值"/>
  2. 常用属性:
  • value:用来设置初始值,格式必须是yyyy-WMM(如:2021-W07)

代码示例:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02-新增input元素类型-取值型</title>
    <style>
    </style>
    <script>
      window.onload = function () {
        let input = document.getElementsByTagName("input")[0];
        let output = document.getElementsByTagName("output")[0];

        let input2 = document.getElementsByTagName("input")[1];
        let output2 = document.getElementsByTagName("output")[1];

        let input3 = document.getElementsByTagName("input")[2];
        let output3 = document.getElementsByTagName("output")[2];

        output.value = input.value; // 获取初始值
        input.onchange = function () {
          output.value = input.value;
        }

        output2.value = input2.value;
        input2.onchange = function () {
          output2.value = input2.value;
        }

        output3.value = input3.value;
        input3.onchange = function () {
          output3.value = input3.value;
        }
      }
    </script>
  </head>
  <body>
    <form action="post">
      <p>
        <input type="range" min="-10" max="10" step="2" value="5">
        <output></output>
      </p>
      <p>
        <input type="number" min="-10" max="10" step="2" value="5">
        <output></output>
      </p>
      <p>
        <input type="color" value="#cd034a">
        <output></output>
      </p>
      <p>
        <input type="date" value="2021-12-24">
      </p>
      <p>
        <input type="time" value="13:14">
      </p>
      <p>
        <input type="month" value="2021-12">
      </p>
      <p>
        <input type="week" value="2021-W05">
      </p>
    </form>
  </body>
</html>

二、input元素新增属性

HTML5中input元素新增的属性有:autocomplete、autofocus、placeholder、required、pattern

2-1、autocomplete

用来实现文本框的自动提示功能

  1. 语法: <input type="text" autocomplete="on/off" />
  2. 使用场景
  • 一般结合datalist元素来实现自动提示功能(当在文本框中输入内容时,会自动匹配出符合的datalist中的option)
  • 适用于所有文本框型的input元素,包括text password email url tel等

代码示例:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>07-input元素新增的属性</title>
  </head>
  <body>
    <input type="text" autocomplete="on" list="datas">
    <datalist id="datas">
      <option value="HTML"></option>
      <option value="CSS"></option>
      <option value="JavaScript"></option>
      <option value="Vue.js"></option>
      <option value="React.js"></option>
    </datalist>
  </body>
</html>

2-2、autofocus

用来实现文本框的自动获取焦点

  1. 语法: <input type="text" autofocus="autofocus" />
  • 也可以简写成 <input type="text" autofocus />
  1. 使用场景: 适用于所有文本框型的input元素自动获取焦点,包括text password email url tel等

2-3、placeholder

用来为文本框添加提示内容

  1. 语法: <input type="text" placeholder="提示文字" />
  2. 使用场景: 适用于所有文本框型的input元素,包括text password email url tel等

2-4、required

用来定义文本框输入内容不能为空

  1. 语法: <input type="text" required="required" />
  • 也可以简写成 <input type="text" required/>
  1. 使用场景: 适用于所有文本框型的input元素,包括text password email url tel等

2-5、pattern

用来为文本框添加验证功能

  1. 语法: <input type="text" pattern="正则表达式" />
  2. 使用场景: 也适用于其他类型的input元素,如:email url tel等