前端:表单验证页面(html+css+javascript)

花了几个小时,用html+css+javascript写了一个表单验证页面,继续努力

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
	<title>用户注册</title>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    header{
      width: 1200px;
      margin: 0 auto;
      height: 50px;
      background-color: #0099FF;
      color: white;
      line-height: 50px;
    }
    header span{
      margin-left: 50px;
      font-size: 22px;
      font-family: "微软雅黑";
    }
    .main{
      width: 1200px;
      margin: 0 auto;
      background-color: #ccc;
    }
    .main-inner{
      width: 300px;
      margin: 0 auto;
    }
    .main-form{
      width: 100%;
      padding: 50px 0;
    }
    .main-form .form-content{
      height: 38px;
      line-height: 38px;
      position: relative;
    }
    .main-form .form-content .form-label{
      width: 85px;
      float: left;
      text-align: right;
      font-size: 16px;
      padding-right: 15px;
    }
    .main-form .form-content .form-input{
      width:160px;
    }
    .main-form .form-content .form-tips{
      position:absolute;
      left: 266px;
      top: 0;
      white-space: nowrap;
      color: #f00;
      /* background-color: black; */
      font-size: 12px;
    }

    .main-submit{
      margin-top: 70px;
      text-align: center;
    }
    .main-submitBtn{
      width: 85px;
      height: 30px;
      font-size: 16px;
      background-color: #0099FF;
      border: none;
      border-radius: 3px;
      color:white;
      font-weight: bold;
    }
  </style>
</head>
<body>
	<header>
    <span>用户注册</span>
  </header>
  <section class="main">
    <div class="main-inner">
      <form class="main-form" action="">
        <!--用户名-->
        <div class="form-content">
          <span class="form-label">用户名:</span>
          <input class="form-input"  id="form-input-userName">
          <span class="form-tips"></span>
        </div>
        <!--登陆密码-->
        <div class="form-content">
          <span class="form-label">登陆密码:</span>
          <input class="form-input" id="form-input-pwd">
          <span class="form-tips"></span>
        </div>
        <!--确认密码-->
        <div class="form-content">
          <span class="form-label">确认密码:</span>
          <input class="form-input" id="form-input-pwd2">
          <span class="form-tips"></span>
        </div>
        <!--姓名-->
        <div class="form-content">
          <span class="form-label">姓名:</span>
          <input class="form-input" id="form-input-name">
          <span class="form-tips"></span>
        </div>
        <!--性别-->
        <div class="form-content">
          <span class="form-label">性别:</span>
          <select class="form-input" id="form-input-sex">
            <option value="male">男</option>
            <option value="female">女</option>
          </select>
          <span class="form-tips"></span>
        </div>
        <!--身份证号码-->
        <div class="form-content">
          <span class="form-label">身份证号码:</span>
          <input class="form-input" id="form-input-userId">
          <span class="form-tips"></span>
        </div>
        <!--邮箱-->
        <div class="form-content">
          <span class="form-label">邮箱:</span>
          <input class="form-input" id="form-input-mail">
          <span class="form-tips"></span>
        </div>
        <!--手机号码-->
        <div class="form-content">
          <span class="form-label">手机号码:</span>
          <input class="form-input" id="form-input-phone">
          <span class="form-tips"></span>
        </div>
        <div class="main-submit">
            <input class="main-submitBtn" id="main-submitBtn" type="button"  value="提交">
        </div>

      </form>
    </div>
  </section>
  <script type="text/javascript">
  // 获取dom元素
  var inputElements = document.getElementsByClassName("form-input");
  var formTips = document.getElementsByClassName("form-input");
  // console.log(inputElements);
  // var username = document.getElementById("form-input-userName");
  var pwd1 = document.getElementById("form-input-pwd");
  var pwd2 = document.getElementById("form-input-pwd2");
  // var name = document.getElementById("form-input-name");
  // var sex = document.getElementById("form-input-sex");
  // var userId = document.getElementById("form-input-userId");
  // var mail = document.getElementById("form-input-mail");
  // var phone = document.getElementById("form-input-phone");
  var submitBtn = document.getElementById("main-submitBtn");
  //console.log(submitBtn);

  var input = {
    userName:{
      pattern:/^[a-z]\w{5,19}$/i,
      error: '要求用户名是6-20位字母、数字或“_”,字母开头'
    },
    pwd:{
      pattern:/^\S{6,18}$/,
      error:"6-18位,包括数字字母或符号,中间不能有空格"
    },
    pwd2:{
      error:"两次输入不一致,请重新输入"
    },
    name:{
      pattern: /^[\u4e00-\u9fa5]{2,4}$/,
      error: '要求是真实姓名,两位到四位的中文汉字'
    },
    userId:{
      pattern: /^(\d{15}|\d{17}[X\d])$/,
      error: '要求15位或者18位的数字,18位时最后一位可能是x'
    },
    mail:{
      pattern: /^[\w-]+@([-a-z]+\.)+[a-z]{2,}$/i,
      error: '邮箱的格式不正确'
    },
    phone:{
      pattern: /^1(3\d|47|5[012356789]|8[0256789])\d{8}$/,
      error: '请正确填写手机号码格式'
    }
  }

    window.onload = function(){
      // 添加input的验证事件
       eachInputAddVerifyListener();
      //给submit按钮绑定事件,点击按钮后,所有的Input都要验证一遍
       submitBtn.addEventListener("click",submitHandler);

    }

    function eachInputAddVerifyListener(){
      // 添加input的验证事件
      for(var i=0;i<inputElements.length;i++){
        inputElements[i].addEventListener("blur",function(){
          formValidByObj(this);
        });
      }

    }

    function formValidByObj(eleObj){
      var goTo =(eleObj.id).split("-")[2];
      var content = eleObj.value;
      //寻找兄弟节点中的form-tips的元素
      var formTips = eleObj.parentNode.querySelector('.form-tips');
      var flag = false;
      // console.log(content);
      // console.log(goTo);


      // console.log(pattern);
      if(goTo=="pwd2"){
        // console.log(pwd1.value);
        // console.log(pwd2.value);
        if(pwd1.value==pwd2.value && (pwd2.value!=undefined && pwd2.value.length!=0)){
          flag= true;
        }
      }else if(goTo=="sex"){
          flag=true;
      }else{
        //根据Id后缀名称选择对应匹配的正则表达式
        var pattern = input[goTo].pattern;
        flag = pattern.test(content);
      }

      // console.log(flag);
      // console.log(formTips);
      if(flag==true){
        formTips.innerHTML="ok"
      }else{
        formTips.innerHTML=input[goTo].error;
      }

      return flag;
    }


    function submitHandler(e){
    //  console.log("submit");
      var res = true;;
      for(var i=0;i<inputElements.length;i++){
      //  console.log(inputElements[i]);
        var currFlag = formValidByObj(inputElements[i]);
        if(currFlag==false){
          res = false;
        }
    //    console.log(res);
      }
      if(res==true){

        alert("验证成功!");
      }else{
        e.preventDefault();
        alert("信息有误,请检查!");
      }
    }
  </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        form{
            width:300px;
            background:pink;
            text-align: center;
            padding:30px 0;
            margin:100px auto;
        }
    </style>
</head>
<body>
    <form id="form">
        <p><input type="text" name="name" id="username" placeholder="请输入账户名"></p>
        <span></span>
        <p><input type="text" name="chinaName" id="chinaName" placeholder="请输入中文名"></p>
        <span></span>
        <p><input type="email" name="eamil" id="email" placeholder="请输入邮箱"></p>
        <span></span>
        <p><input type="submit" value="注册" id="submit"></p>
    </form>
    <script type="text/javascript">
        var spans=document.getElementsByTagName("span");
        var username=document.getElementById("username");
    	var chinaName=document.getElementById("chinaName");
    	var email=document.getElementById("email");
    	var submit=document.getElementById("submit");
    	var input1=false;
    	var input2=false;
    	var input3=false;
    	
    	username.onfocus = function(){
    	    spans[0].innerHTML="请输入用户名";
    	}
    	username.onblur = function(){
    	    var reg = /^\w{6,18}$/;
    	    if(username.value==""){
    	        spans[0].innerHTML="请输入用户名";
    	    }else{
    	        if(!reg.test(username.value)){
    	            spans[0].innerHTML="请输入6-18位的字母、数字、下划线";
    	        }else{
    	            spans[0].innerHTML="格式正确";
    	            input1 = true;
    	        }
    	    }
    	}
    	
    	chinaName.onfocus = function(){
    	    spans[1].innerHTML="请输入姓名";
    	}
    	chinaName.onblur = function(){
    	    var reg = /^[\u4e00-\u9fa5]{2,5}$/;
    	    if(chinaName.value==""){
    	        spans[1].innerHTML="请输入姓名";
    	    }else{
    	        if(!reg.test(chinaName.value)){
    	            spans[1].innerHTML="格式不正确";
    	        }else{
    	            spans[1].innerHTML="格式正确";
    	            input2 = true;
    	        }
    	    }
    	}
    	
    	
    	email.onfocus = function(){
    	    spans[2].innerHTML="请输入邮箱";
    	}
    	email.onblur = function(){
    	    var reg = /^\w+@\w+\.[a-zA-Z]{2,3}$/;
    	    if(email.value==""){
    	        spans[2].innerHTML="请输入邮箱";
    	    }else{
    	        if(!reg.test(email.value)){
    	            spans[2].innerHTML="格式不正确";
    	        }else{
    	            spans[2].innerHTML="格式正确";
    	            input3 = true;
    	        }
    	    }
    	}
    	
    	submit.onclick = function(){
    	    if(input1 == false || input2 == false ||input3 == false){
    	        alert("请按照要求填写完整信息");
    	    }else{
    	        alert("注册成功");
    	    }
    	}
    	
    </script>
</body>

</html>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值