zoukankan      html  css  js  c++  java
  • HTML5对表单的约束验证

        在HTML5中增加了许多新的功能,用于表单提交到服务器之前对表单进行数据的验证(抢了javascript的饭碗),有了这些功能,即便是javascript没有加载进来还是可以确保基本的验证。换句话说,浏览器自己会根据标记中的规则执行验证,然后自己显示适当的错误消息。当然,这些功能既然是来自HTML5 的,当然只能在支持HTML5这部分的内容的浏览器才有效,所以请我们看向未来的眼光来学习下面的这些个功能。

      1. 必填字段 在表单中指定required字段,凡是标注有required的字段在提交表单时值都不能为空。这个属性适用于<input>、<textarea>和<select>字段。(opera11及之前的版本还不支持<select>的required属性)。  
        <form action="post">
                <label for="ele1">约束必填字段:</label><input id="eleOne" type="text" name="username" required>
                <button type="submit">submit</button>
        </form>    

        在chrome下有如下提示:

        可以使用如下代码检测浏览器的支持性

        var isRequiredSuppored = "required" in document.createElement("input"); 

         



        dfdsfsfsdfsdfsdfsdfsdfsdfasdfsdfasdfasdfasdfasdf

      2. 其他输入类型
        HTML5为input元素的type属性又增加了几个值。这些新类型不仅能反映数据类型的信息,而且还能提供一些默认的验证功能,其中“email”和“url”是两个得到支持最多的类型,浏览器为他们提供了验证机制。
        <form action="post">
                <label for="ele2">其他输入类型:</label><br>
                <input type="email" name="email"><br>
                <input type="url" name="url"><br>
                <button type="submit">submit</button>
        </form>

        在chrome有如下提示:

        提示:浏览器只能简单验证其输入的格式并不能验证它的有效性。
        可以用以下方式来检测浏览器是否支持

        var input = document.createElement("input");
        input.type="email";
        var isEmailedSuppored = (input.type = "email");

         

         

      3. 数值范围
        HTML5还给type定义了其他属性“number”、“range”、“datatime”、“datatime-local”、“data”、“month”、“week”、“time”。对于这些数值类型的输入元素,可以指定min属性(最小的可能值)、max属性(最大的可能值)和step属性(从min到max的两个刻度间的差值)
        <form action="post">
            <label for="ele3">数值范围:</label><input type="number" min="0" max="10" step="2"><br>
            <button type="submit">submit</button>
        </form>



        在不同的浏览器中可能会看到能够自动递增递减的按钮(如图),因浏览器而异。

      4. 输入模式
        HTML5为文本新增了pattern属性。这个属性的值是一个正则表达式,用于匹配文本框中的值
        <form action="post">
            <label for="ele4">输入模式:</label><input type="text" pattern="d+" name="count"><br>
            <button type="submit">submit</button>
        </form>


        注意:模式的开头和末尾不用加^和$符号(假定已经有了)。这两个符号表示输入的值必须从头到尾都与模式匹配。
        使用以下代码可以检测浏览器是否支持pattern属性。

        var isPatternSuppored = "pattern" in document.createElement("input");

         

      5. 禁用验证
        通过设置novalidate属性,可以告诉我们表单不进行验证。
        <form method="post" action="XXX.php" novalidate>
            <!--这里插入表单元素->
        </form>

        如果一个表单中有多个提交按钮,为了指定点击某个提交按钮不必验证表单,可以在响应的按钮上添加formnovalidate属性。

        <form method="post" action="XXX.php" novalidate>
            <!--这里插入表单元素->
            <input type="submit" value="submit">
            <input type="submit" value="NOsubmit"  formvalidate>
        </form>

         

  • 相关阅读:
    bootstrap组件+模板地址
    10个自动化测试框架,测试工程师用起来
    IP地址分类(A类 B类 C类 D类 E类)
    来不及解释!Linux常用命令大全,先收藏再说
    凭借祖传配方年入21亿(王守义十三香),一生坚持不上市,亏待自己也要善待员工
    不同手指戴戒指的含义
    Soul App 是一款怎样的产品? SOUL APP 机缘巧合我开始使用 今天第四天内心想知道大家对它的感受 又其实并没有那么想大家把感受具象化再描述出来 嗯 还是希望大家能说一说(网恋需谨慎,小心骗子)
    解放双手,markdown文章神器,Typora+PicGo+七牛云图床实现自动上传图片
    度学习与自然语言处理
    软件测试面试之剖析面试官
  • 原文地址:https://www.cnblogs.com/nanshanlaoyao/p/5993393.html
Copyright © 2011-2022 走看看