HTML5技术

html5表单验证 - 丿伊枫

字号+ 作者:H5之家 来源:H5之家 2016-03-03 16:46 我要评论( )

表单验证为终端用户检测无效的数据并标记这些错误,是一种用户体验的优化。 下面展现浏览器自带的验证功能也可在移动端中查看: HTML部分: html5 表单验证名称不能为空邮箱邮箱格式不正确省份请选择四川重庆 CSS部分: fieldset { border : 0 ;} .myform .f

表单验证为终端用户检测无效的数据并标记这些错误,是一种用户体验的优化。

下面展现浏览器自带的验证功能也可在移动端中查看:

HTML部分:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
    <title>html5 表单验证</title>
</head>
<body>
<form action="#" id="formValid" class="myform" novalidate="novalidate" onsubmit="return checkForm()">
    <fieldset>
        <div class="form-group">
            <label for="name">名称</label>
            <div>
                <input type="text" class="form-control" id="name" name="name" required/>
                <span class="form-error">不能为空</span>
            </div>
        </div>
        <div class="form-group">
            <label for="email">邮箱</label>
            <div>
                <input type="email" class="form-control"  id="email" name="email" required/>
                <span class="form-error">邮箱格式不正确</span>
            </div>
        </div>
        <div class="form-group">
            <label>省份</label>
            <select name="province" class="form-control">
                <option value="">请选择</option>
                <option value="s">四川</option>
                <option value="c">重庆</option>
            </select>
        </div>
        <input type="submit" class="btn" value="提交"/>
    </fieldset>
</form>
</body>
</html>

CSS部分:

   fieldset{border: 0;}
    .myform .form-control{
        display: block;
        padding: 5px;
        width: 100%
    }
    .myform input:focus:invalid + .form-error{
        display: inline;
    }
    .myform .form-error{
        display: none;
        position: absolute; 
        margin-top: .7em;
        padding: 1px 2px;
        color: #fff;
        font-size: .875rem;
        background: #f40;
    }
    .myform .form-error:after{
        position: absolute;
        content: "";
        top: -.5em;
        left: .5em;
        z-index: 100;
        display: inline-block;
        width: 0;
        height: 0;
        vertical-align: middle;
        border-bottom: .5em solid #f40;
        border-right: .5em solid transparent;
        border-left: .5em solid transparent;
        border-top: 0 dotted;
        transform: rotate(360deg);
        overflow: hidden;
    }
    .btn{
        padding: 5px 20px;
     }

JavaScript部分:

    function checkForm(){
        var myform = document.getElementById("formValid");
        return check(myform.elements);
    }
    function check(eles){
        var ele;
        for(var i = 0;i<eles.length;i++){
            ele = eles[i];
            if(ele.nodeName == "SELECT"){
                if(!ele.selectedIndex){
                    alert("请选择省份");
                    return false;
                }
            }else if(ele.name){
                if(!ele.checkValidity()){
                    ele.focus();
                    return false;
                }
            }
        }
        return true;
    }
 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • HTML5 进阶系列:indexedDB 数据库 - _林鑫

    HTML5 进阶系列:indexedDB 数据库 - _林鑫

    2017-04-27 14:02

  • HTML5 高级系列:web Storage - _林鑫

    HTML5 高级系列:web Storage - _林鑫

    2017-04-27 14:01

  • HTML5和CSS3 - 奔跑在起跑线佼佼者

    HTML5和CSS3 - 奔跑在起跑线佼佼者

    2017-04-20 13:00

网友点评