jquery实现简易的移动端验证表单


Posted in Javascript onNovember 08, 2015

验证是否显示红色的提交按钮

bindBlur:function(){//jquery多级验证表单
  var n = $('#item_name');
  var p = $('#price');
  var r = $('#reserve');
  show(velidate());//页面加载之后先进行一次验证
  //分别对三个需要验证的字段进行验证绑定,这里也可以写成一句代码
  //$('#item_name','#price',$('#reserve')).on({blur:function(){show(veridate())}});
  n.on({blur:function(){show(velidate())}});
  p.on({blur:function(){show(velidate())}});
  r.on({blur:function(){show(velidate())}});
  function velidate(){//获取验证的结果
    var flag = true;
    if(n.val()==""){flag= false;}
    if(p.val()=="0" || p.val()==""){flag= false;}
    if(r.val()=="0" || r.val()==""){flag= false;}
    return flag;
  }
  function show(flag){//将验证结果反映到页面
    if(flag){$(".down-complete-btn").css("background-color","#b02125");}
    else{$(".down-complete-btn").css("background-color","#8f8f8f");}
  }
},

验证,在用户点击提交的时候调用,会定位需要完善的地方

check:function(){
  var n = $('#item_name');
  var p = $('#price');
  var r = $('#reserve');
  if(n.val()==""){n.focus();return false;}
  if(p.val()=="0" || p.val()==""){p.focus();return false;}
  if(r.val()=="0" || r.val()==""){r.focus();return false;}
  return true;
},

这一段是ajax提交和提交前调用验证

postData:function(){
  $(".down-complete-btn").click(function(){
    if(Add.check()){
      $.ajax({
        type : 'post',
        dataType : 'json',
        data : {
          id : $("#item_id").val(),
          name : $("#item_name").val(),
          price : $("#price").val(),
          photos : $("#photos").val(),
        },
        cache : false,
        url : '/main/goods/add',
        success : function(data){
          if(data.code==1){
            alert("修改成功");
          }else{
            console.log(data);
          }
        },
        error : function(){
          alert('网络异常');
        }
      });
    }
  });
}

easy_form_validate.js

require.config({
  paths:{
    "jquery":"./lib/jquery-1.11.1.min",
    'icon_Upload':'./icon_Upload'
  }
});
require(['jquery','icon_Upload'],function(){
  Add.bindBlur();
  Add.postData();
});
var Add = {
  bindBlur:function(){//jquery多级验证表单
    var n = $('#item_name');
    var p = $('#price');
    var r = $('#reserve');
    show(velidate());//页面加载之后先进行一次验证
    //分别对三个需要验证的字段进行验证绑定,这里也可以写成一句代码
    //$('#item_name','#price',$('#reserve')).on({blur:function(){show(velidate())}});
    n.on({blur:function(){show(velidate())}});
    p.on({blur:function(){show(velidate())}});
    r.on({blur:function(){show(velidate())}});
    function velidate(){//获取验证的结果
      var flag = true;
      if(n.val()==""){flag= false;}
      if(p.val()=="0" || p.val()==""){flag= false;}
      if(r.val()=="0" || r.val()==""){flag= false;}
      return flag;
    }
    function show(flag){//将验证结果反映到页面
      if(flag){$(".down-complete-btn").css("background-color","#b02125");}else{$(".down-complete-btn").css("background-color","#8f8f8f");}
    }
  },
  check:function(){
    var n = $('#item_name');
    var p = $('#price');
    var r = $('#reserve');
    if(n.val()==""){n.focus();return false;}
    if(p.val()=="0" || p.val()==""){p.focus();return false;}
    if(r.val()=="0" || r.val()==""){r.focus();return false;}
    return true;
  },
  postData:function(){
    $(".complete-btn").click(function(){
      if(Add.check()){
        $.ajax({
          type : 'post',
          dataType : 'json',
          data : {
            id : $("#item_id").val(),
            name : $("#item_name").val(),
            summary : $("#summary").text(),
            price : $("#price").val(),
            store : $("#store").val(),
            mobileDetail : $("#detail").val(),
            photos : $("#photos").val(),
            brokerage : $("#brokerage").val(),
            flag : $("#flag").val(),
          },
          cache : false,
          url : '/main/goods/add',
          success : function(data){
            if(data.code==1){
              alert("修改成功");
            }else{
              console.log(data);
            }
          },
          error : function(){
            alert('网络异常');
          }
        });
      }
    });
  }
};

我们再来看一则验证代码

<script type="text/javascript">
//<![CDATA[
$(function(){
    /*
    *思路大概是先为每一个required添加必填的标记,用each()方法来实现。
    *在each()方法中先是创建一个元素。然后通过append()方法将创建的元素加入到父元素后面。
    *这里面的this用的很精髓,每一次的this都对应着相应的input元素,然后获取相应的父元素。
    *然后为input元素添加失去焦点事件。然后进行用户名、邮件的验证。
    *这里用了一个判断is(),如果是用户名,做相应的处理,如果是邮件做相应的验证。
    *在jQuery框架中,也可以适当的穿插一写原汁原味的javascript代码。比如验证用户名中就有this.value,和this.value.length。对内容进行判断。
    *然后进行的是邮件的验证,貌似用到了正则表达式。
    *然后为input元素添加keyup事件与focus事件。就是在keyup时也要做一下验证,调用blur事件就行了。用triggerHandler()触发器,触发相应的事件。
    *最后提交表单时做统一验证
    *做好整体与细节的处理
    */
    //如果是必填的,则加红星标识.
    $("form :input.required").each(function(){
      var $required = $("<strong class='high'> *</strong>"); //创建元素
      $(this).parent().append($required); //然后将它追加到文档中
    });
     //文本框失去焦点后
    $('form :input').blur(function(){
       var $parent = $(this).parent();
       $parent.find(".formtips").remove();
       //验证用户名
       if( $(this).is('#username') ){
          if( this.value=="" || this.value.length < 6 ){
            var errorMsg = '请输入至少6位的用户名.';
            $parent.append('<span class="formtips onError">'+errorMsg+'</span>');
          }else{
            var okMsg = '输入正确.';
            $parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
          }
       }
       //验证邮件
       if( $(this).is('#email') ){
        if( this.value=="" || ( this.value!="" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value) ) ){
           var errorMsg = '请输入正确的E-Mail地址.';
           $parent.append('<span class="formtips onError">'+errorMsg+'</span>');
        }else{
           var okMsg = '输入正确.';
           $parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
        }
       }
    }).keyup(function(){
      $(this).triggerHandler("blur");
    }).focus(function(){
       $(this).triggerHandler("blur");
    });//end blur

    
    //提交,最终验证。
     $('#send').click(function(){
        $("form :input.required").trigger('blur');
        var numError = $('form .onError').length;
        if(numError){
          return false;
        } 
        alert("注册成功,密码已发到你的邮箱,请查收.");
     });

    //重置
     $('#res').click(function(){
        $(".formtips").remove(); 
     });
})
//]]>
</script>
Javascript 相关文章推荐
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
Nov 11 Javascript
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
javascript显示用户停留时间的简单实例
Aug 05 Javascript
jQuery响应enter键的实现思路
Apr 18 Javascript
JS实现简易图片轮播效果的方法
Mar 25 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
老生常谈jquery id选择器和class选择器的区别
Feb 12 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
Aug 16 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
Aug 24 Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 09 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
Sep 21 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
Nov 07 #Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
Nov 07 #Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
Nov 07 #Javascript
jquery验证邮箱格式并显示提交按钮
Nov 07 #Javascript
jquery判断当前浏览器的实现代码
Nov 07 #Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 #Javascript
js识别uc浏览器的代码
Nov 06 #Javascript
You might like
php操作xml
2013/10/27 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
用javascript做拖动布局的思路
2008/05/31 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
python网络编程学习笔记(四):域名系统
2014/06/09 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
python输出数学符号实例
2020/05/11 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
煤矿班组长的职责
2013/12/25 职场文书
土地转让协议书
2014/04/15 职场文书
安全生产承诺书范文
2014/05/22 职场文书
医院领导班子整改方案
2014/10/01 职场文书
干部年终考核评语
2015/01/04 职场文书
2015年领班工作总结
2015/04/29 职场文书
民主生活会意见
2015/06/05 职场文书