• HTML5系列:HTML5表单


    1. input元素新增类型

      url类型

      url类型的input元素是一种用来输入url的文本框,提交时如果该文本框中内容不是url格式,则不允许提交。

    <input type="url" />

      email类型

      email类型的input元素是用来输入email的文本框,具有一个multiple属性允许在文本框中输入一串以逗号分隔的email地址。

    <input type="email" multiple />

      date类型

      date类型的input元素用来输入日期的文本框。

    <input type="date" value="2015-04-19" />

      time类型

      time类型的input元素是用来输入时间的文本框。

    <input type="time" value="00:19" />

      month类型

      month类型的input元素用来输入月份的文本框。

    <input type="month" value="2015-04" />

      week类型

      week类型的input元素用来输入周号的文本框。

    <input type="week" value="2015-W20" />

      number类型

      number类型input元素是用来输入数字的文本框,在提交时会检查其中的内容是否为数字,具有min、max及step属性。

    <input type="number" min="1" max="100" step="5" />

      range类型

      range类型的input元素是只允许输入一段范围内数值的文本框,具有min、max及step属性。

    <input type="range" min="0" max="100" step="1" value="0" />

    2. input元素新增属性

      autofocus属性

      autofocus属性是一个Boolean值,在页面加载完成后,input自动获取焦点。

    <input type="text" autofocus />

      pattern属性

      pattern是元素的验证属性,使用正则表达式验证文本输入框中的内容。

    <input type="text" pattern="^[a-zA-Z]w{5,7}$" />

      placeholder属性

      input元素的placeholder属性为占位属性,显示在输入框中的提示信息,当输入框中输入内容时,该提示信息自动消失;当输入框内容为空时,提示信息重新显示。

    <input type="text" placeholder="请输入" />

      required属性

      input元素required属性用于校验输入内容是否为空。

    <input type="text" required />

      list属性

      input元素list属性的值为某个datalist元素的id,类似于选择框(<select>),当用户想要设置的值不在选择列表之内时,允许自行输入。

    <input type="text" list="weekdays" />
    <datalist id="weekdays">
        <option value="Sunday">Sunday</option>
        <option value="Monday">Monday</option>
        <option value="Tuesday">Tuesday</option>
        <option value="Wednesday">Wednesday</option>
        <option value="Thursday">Thursday</option>
        <option value="Friday">Friday</option>
        <option value="Saturday">Saturday</option>
    </datalist>

      autocomplete属性

      input元素autocomplete属性用于自动完成功能,autocomplete属性可以指定“on”、“off”值。

    <input type="text" autocomplete="on" list="weekdays" />
    <datalist id="weekdays">
        <option value="Sunday">Sunday</option>
        <option value="Monday">Monday</option>
        <option value="Tuesday">Tuesday</option>
        <option value="Wednesday">Wednesday</option>
        <option value="Thursday">Thursday</option>
        <option value="Friday">Friday</option>
        <option value="Saturday">Saturday</option>
    </datalist>

      示例中使用datalist元素中数据作为候补输入的数据在文本框中自动显示。

      formnovalidate属性

      input元素formnovalidate属性用于设置在表单中不进行验证。

    <input type="number" formnovalidate />

    3. 新增表单元素

    3.1 datalist元素

      datalist元素用于附中表单中文本框的数据输入。datalist元素本身是隐藏的,与表单文本框的“list”属性绑定,“list”属性值为datalist元素的ID。

    <input type="text"list="weekdays" />
    <datalist id="weekdays">
        <option value="Sunday">Sunday</option>
        <option value="Monday">Monday</option>
        <option value="Tuesday">Tuesday</option>
        <option value="Wednesday">Wednesday</option>
        <option value="Thursday">Thursday</option>
        <option value="Friday">Friday</option>
        <option value="Saturday">Saturday</option>
    </datalist>

    3.2 output元素

      output元素必须从属于某个form,用于在页面中显示各种不同类型表单元素的内容。output元素的“onFormInput”事件,在表单输入框输入内容时触发该事件。

    <form>
        <input id="txtNumber1" type="number" /> *
        <input id="txtNumber2" type="number" /> =
        <output onforminput="value = txtNumber1.value * txtNumber2.value"></output>
    </form>

    4. 表单验证

    4.1 checkValidity显示验证

      表单中的各元素可以利用pattern与required属性验证元素内容的有效性,每个元素都可以通过checkValidity(),校验本身是否与验证条件匹配。如果一致,返回true,否则返回false。

    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <script type="text/javascript">
            function Check() {
                var email = document.getElementById("txtEmail");
                if (email.value == "") {
                    alert("Email不能为空!");
                    return false;
                } else if (!email.checkValidity()) {
                    alert("Email格式错误!");
                    return false;
                } else {
                    alert("Email输入正确!");
                    return true;
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" onsubmit="return Check();">
            <input id="txtEmail" type="email" />
            <input type="submit" value="Submit" />
        </form>
    </body>
    </html>

    4.2 取消验证

      取消表单验证的两种常用方法:

      (1)利用form元素的novalidate属性,关闭整个表单的验证;

      (2)利用input元素或submit元素的formnovalidate属性,让表单对单个input元素取消验证。

    <form novalidate></form>
    <input type="text" formnovalidate />

    4.3 setCustomValidity自定义错误信息

      在表单与相应规则验证时,由于使用的是系统内置的验证方法,因此在出错提示也是由系统自带的。修改验证出错信息内容调用元素或表单的setCustomValidity()方法。

    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <script type="text/javascript">
            function Check() {
                var email = document.getElementById("txtEmail");
                if (email.value == "") {
                    alert("Email不能为空!");
                    return false;
                } else if (!email.checkValidity()) {
                    email.setCustomValidity("Email格式错误!");
                    return false;
                } else {
                    alert("Email输入正确!");
                    return true;
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" onsubmit="return Check();">
            <input id="txtEmail" type="email" />
            <input type="submit" value="Submit" />
        </form>
    </body>
    </html>
  • 相关阅读:
    如何在Windows 10 IoT Core中添加其他语言的支持,如中文
    交易应用及网站驱动不兼容Windows 10的解决方案
    五步轻松实现对现代浏览器的兼容
    在Windows 10中开启开发者模式
    Modern.IE,创建现代网站的给力开发工具!
    Visual Studio的 Apache Cordova 插件CTP3.0发布!
    什么开发?什么是编程语言?你能学吗?你能做吗?
    IT'S NOT A JOKE!一篇博客让你玩转IT领域!你说我吹NB?请进来跟着浪一浪
    python为什么慢?
    编译错误 expected class-name before ‘{’ token
  • 原文地址:https://www.cnblogs.com/libingql/p/4438442.html
Copyright © 2020-2023  润新知