zoukankan      html  css  js  c++  java
  • 表单验证

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    </head>
    <body>
    用户名:<input type="text" id="user"><span></span><br>
    密码:<input type="text" id="pass"><span></span><br>
    重复密码:<input type="text" id="pass2"><span></span><br>
    <input type="button" value="提交" id="btn">
    </body>
    <script>
    var ouser = document.getElementById("user");
    var opass = document.getElementById("pass");
    var opass2 = document.getElementById("pass2");
    var obtn = document.getElementById("btn");

    // 提前定义每个输入框的成功状态:false为失败,true为成功
    var u = p = p2 = false;

    // 用户名仅支持中文、字母、数字、“-”“_”的组合,4-20个字符
    ouser.onblur = function(){
    var reg = /^[u2E80-u9FFFw-]{4,20}$/;
    if(reg.test(this.value)){
    this.nextElementSibling.innerHTML = "用户名成功";
    u = true;
    }else{
    this.nextElementSibling.innerHTML = "用户名仅支持中文、字母、数字、“-”“_”的组合,4-20个字符";
    u = false;
    }
    }

    // 数字字母特殊字符,一种类型,弱。两种类型为中,三种类型为强
    opass.onblur = function(){
    // 提前定义每种类型的状态:0为没有,1为出现
    var a=b=c=0;
    // 是否出现数字a
    var aReg = /d/;
    if(aReg.test(this.value)){
    a = 1;
    }
    // 是否出现字母b
    var bReg = /[a-zA-Z]/;
    if(bReg.test(this.value)){
    b = 1;
    }
    // 是否出现特殊c
    var cReg = /[W]/;
    if(cReg.test(this.value)){
    c = 1;
    }
    // 状态累加之后,判断总和,判断难度类型
    switch(a+b+c){
    case 1:
    this.nextElementSibling.innerHTML = "简单";break;
    case 2:
    this.nextElementSibling.innerHTML = "一般";break;
    case 3:
    this.nextElementSibling.innerHTML = "困难";break;
    }
    p = true;


    // 在第一次输入密码时,只要重复密码不为空,都做重复密码的验证
    if(opass2.value == "") return;
    if(this.value === opass2.value){
    opass2.nextElementSibling.innerHTML = "一致";
    p2 = true;
    }else{
    opass2.nextElementSibling.innerHTML = "不一致";
    p2 = false;
    }
    }

    opass2.onblur = function(){
    if(this.value === opass.value){
    this.nextElementSibling.innerHTML = "一致";
    p2 = true;
    }else{
    this.nextElementSibling.innerHTML = "不一致";
    p2 = false;
    }
    }

    obtn.onclick = function(){
    // 提交时,判断所有输入框的状态必须全为true
    if(u && p && p2){
    alert("ok")
    }else{
    // 只要有一个不为true,都单独判断,找到真正的错误
    if(!u){
    alert("用户名error")
    }
    if(!p){
    alert("密码error")
    }
    if(!p2){
    alert("重复密码error")
    }
    }
    }
    </script>
    </html>

  • 相关阅读:
    webpack基础理解以及使用搭建
    前端优化系列之一:dns预获取 dns-prefetch 提升页面载入速度
    react 什么是虚拟DOM?深入了解虚拟DOM
    react PropTypes 与 DefaultProps
    react todolist代码优化
    react 拆分组件于组件
    react 部分语法补充
    react 的安装和案列Todolist
    浏览器的标准模式和怪异模式
    软件测试基础——慕课网
  • 原文地址:https://www.cnblogs.com/zhouqingfeng/p/11967418.html
Copyright © 2011-2022 走看看