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 相关文章推荐
JavaScript判断窗口是否最小化的代码(跨浏览器)
Aug 01 Javascript
jquery js 获取时间差、时间格式具体代码
Jun 05 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 Javascript
Javascript基础_标记文字的实现方法
Jun 14 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
Aug 17 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
Vue实现百度下拉提示搜索功能
Jun 21 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
JavaScript如何操作css
Oct 24 Javascript
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
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
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
python中set常用操作汇总
2016/06/30 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
Python可以用来做什么
2020/11/23 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
公司新员工的演讲稿注意事项
2014/01/01 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
教你一步步实现一个简易promise
2021/11/02 Javascript
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript