当前位置: 首页 > news >正文

day16-示例:表单验证

一、前言

  之前我们学习了    jQuery事件之阻止事件的发生  ,这个用于表单验证,当我们的用户名,密码输入正确的时候,我们才能跳转,输入错误的时候,就阻止它跳转,那这个怎么实现呢?下面我们就来研究一下。

二、简单的表单验证

2.1、操作的html

<body>
    <form action="n5.html" method="POST">
        <input type="text"/>
        <input type="submit" value="提交"/>
    </form>

    <script src="jquery-1.12.4.js"></script>

    <script>
          //js代码
    </script>
</body>

2.2、表单验证

说明:当我点击提交按钮时,有数据的话,我就跳转,没有数据的话,就停留在当前页面上。

$(":submit").click(function(){
    //alert(123);
    var v = $(this).prev().val();
    if(v.length > 0 ){
        return true;  //不为空,则跳转
    }else {
        return false; //为空,不跳转
    }
})

三、复杂的表单验证

3.1、操作的html

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .error{
            color: red;
        }
    </style>
</head>
<body>
    <form id="f1" action="n5.html" method="POST">
        <div><input name="n1" type="text"/></div>
        <div><input name="n2" type="password"/></div>
        <div><input name="n3" type="text"/></div>
        <div><input name="n4" type="text"/></div>

        <input type="submit" value="提交"/>
    </form>

    <script src="jquery-1.12.4.js"></script>

    <script>
         //js代码
    </script>
</body>

3.2、for循环中return的作用

说明:在循环中加 return false,只是终止当前循环,而不是终止整个程序。

$(":submit").click(function(){
    var i = 1;
    $("#f1").find("input[type='text'],input[type='password']").each(function(){
        var v = $(this).val();
        console.log("第"+i+"次");
        if(v.length <= 0 ){
            i++;
            return false; //只是终止当前循环
        }
    });
    console.log(1111);
    return false;
})

效果图:

3.3、复杂表单验证

①去掉循环中的return代码

$(":submit").click(function(){
    $(".error").remove();
    var flag = true;
    $("#f1").find("input[type='text'],input[type='password']").each(function(){
        var v = $(this).val();
        //console.log(1);
        if(v.length <= 0 ){
            flag = false;
            var tag = document.createElement("span");
            tag.innerHTML = "必填";
            tag.className = "error";
            //$(tag).innerHTML("必填");
            $(this).after(tag);
            //return flag; //只是终止当前循环
        }
    });
    //console.log(1111);
    return flag;
})

效果图:

因为return终止的是当前循环,你注释掉,所以所有的输入框都验证。

②添加return false代码

$(":submit").click(function(){
    $(".error").remove();
    var flag = true;
    $("#f1").find("input[type='text'],input[type='password']").each(function(){
        var v = $(this).val();
        //console.log(1);
        if(v.length <= 0 ){
            flag = false;
            var tag = document.createElement("span");
            tag.innerHTML = "必填";
            tag.className = "error";
            //$(tag).innerHTML("必填");
            $(this).after(tag);
            return flag; //只是终止当前循环
        }
    });
    //console.log(1111);
    return flag;
})

效果图:

这样的话,就变成一个一个的去验证,因为,你第一为空的话,就已经跳出循环了。

转载于:https://www.cnblogs.com/zhangqigao/articles/8401394.html

相关文章:

  • c语言程序设计第6周编程作业一(分解质因数)
  • 将任意程序添加进右键菜单方法
  • 技术分享连载(二十四)
  • 序列化Serializable和Parcelable的理解和区别
  • vue-router的history模式发布配置
  • HTML-坦克大战-完成子弹连发功能(三)
  • ES6 之关键字 const
  • [转] 学会fetch的用法
  • Excel导入功能测试用例整理
  • DAY9-python并发之多进程
  • 常用特殊符号的HTML代码(HTML字符实体)
  • Java开发Tips
  • CUDA学习(十九)
  • export和import的用法总结
  • Picasso源码阅读笔记九
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2019.2.20 c++ 知识梳理
  • C++入门教程(10):for 语句
  •  D - 粉碎叛乱F - 其他起义
  • Druid 在有赞的实践
  • ECMAScript6(0):ES6简明参考手册
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Laravel 菜鸟晋级之路
  • leetcode46 Permutation 排列组合
  • magento 货币换算
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 笨办法学C 练习34:动态数组
  • 程序员该如何有效的找工作?
  • 对象引论
  • 简单基于spring的redis配置(单机和集群模式)
  • 离散点最小(凸)包围边界查找
  • 使用putty远程连接linux
  • 收藏好这篇,别再只说“数据劫持”了
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 【云吞铺子】性能抖动剖析(二)
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • (23)Linux的软硬连接
  • (4)logging(日志模块)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (阿里云万网)-域名注册购买实名流程
  • (二十四)Flask之flask-session组件
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (理论篇)httpmoudle和httphandler一览
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET框架类在ASP.NET中的使用(2) ——QA