成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? jquery實現表單驗證簡單實例演示
全站頭部文字 我要出現在這里
jquery實現表單驗證簡單實例演示 591 2024-03-20   

本文實例講述了jquery實現表單驗證代碼。分享給大家供大家參考。具體如下:
運行效果截圖如下:

查看圖片

具體代碼如下:

直接上插件實現代碼了,圍繞代碼進行講解比較容易點:

/*
描述:基于jquery的表單驗證插件。
*/

(function ($) {
 $.fn.checkForm = function (options) {
  var root = this; //將當前應用對象存入root

  var isok = false; //控制表單提交的開關

  var pwd1; //密碼存儲

  var defaults = {
   //圖片路徑
   img_error: "img/error.gif",
   img_success: "img/success.gif",

   //提示信息
   tips_success: '', //驗證成功時的提示信息,默認為空
   tips_required: '不能為空',
   tips_email: '郵箱地址格式有誤',
   tips_num: '請填寫數字',
   tips_chinese: '請填寫中文',
   tips_mobile: '手機號碼格式有誤',
   tips_idcard: '身份證號碼格式有誤',
   tips_pwdequal: '兩次密碼不一致',

   //正則
   reg_email: /^w+@[a-zA-Z0-9]+.[a-zA-Z]{2,4}$/i, //驗證郵箱
   reg_num: /^d+$/,         //驗證數字
   reg_chinese: /^[u4E00-u9FA5]+$/,     //驗證中文
   reg_mobile: /^1[3458]{1}[0-9]{9}$/,    //驗證手機
   reg_idcard: /^d{14}d{3}?w$/      //驗證身份證
  };

  //不為空則合并參數
  if(options)
   $.extend(defaults, options);

  //獲取(文本框,密碼框,多行文本框),當失去焦點時,對其進行數據驗證
  $(":text,:password,textarea", root).each(function () {
   $(this).blur(function () {
    var _validate = $(this).attr("check"); //獲取check屬性的值
    if (_validate) {
     var arr = _validate.split(' '); //用空格將其拆分成數組
     for (var i = 0; i < arr.length; i++) {
      //逐個進行驗證,不通過跳出返回false,通過則繼續
      if (!check($(this), arr[i], $(this).val()))
       return false;
      else
       continue;
     }
    }
   })
  })

  //表單提交時執行驗證,與上面的方法基本相同,只不過是在表單提交時觸發
  function _onSubmit() {
   isok = true;
   $(":text,:password,textarea", root).each(function () {
    var _validate = $(this).attr("check");
    if (_validate) {
     var arr = _validate.split(' ');
     for (var i = 0; i < arr.length; i++) {
      if (!check($(this), arr[i], $(this).val())) {
       isok = false; //驗證不通過阻止表單提交,開關false
       return; //跳出
      }
     }
    }
   });
  }

  //判斷當前對象是否為表單,如果是表單,則提交時要進行驗證
  if (root.is("form")) {
   root.submit(function () {
    _onSubmit();
    return isok;
   })
  }


  //驗證方法
  var check = function (obj, _match, _val) {
       //根據驗證情況,顯示相應提示信息,返回相應的值
   switch (_match) {
    case 'required':
     return _val ? showMsg(obj, defaults.tips_success, true) : showMsg(obj, defaults.tips_required, false);
    case 'email':
     return chk(_val, defaults.reg_email) ? showMsg(obj, defaults.tips_success, true) : showMsg(obj, defaults.tips_email, false);
    case 'num':
     return chk(_val, defaults.reg_num) ? showMsg(obj, defaults.tips_success, true) : showMsg(obj, defaults.tips_num, false);
    case 'chinese':
     return chk(_val, defaults.reg_chinese) ? showMsg(obj, defaults.tips_success, true) : showMsg(obj, defaults.tips_chinese, false);
    case 'mobile':
     return chk(_val, defaults.reg_mobile) ? showMsg(obj, defaults.tips_success, true) : showMsg(obj, defaults.tips_mobile, false);
    case 'idcard':
     return chk(_val, defaults.reg_idcard) ? showMsg(obj, defaults.tips_success, true) : showMsg(obj, defaults.tips_idcard, false);
    case 'pwd1':
     pwd1 = _val; //實時獲取存儲pwd1值
     return true;
    case 'pwd2':
     return pwdEqual(_val, pwd1) ? showMsg(obj, defaults.tips_success, true) : showMsg(obj, defaults.tips_pwdequal, false);
    default:
     return true;
   }
  }


  //判斷兩次密碼是否一致(返回bool值)
  var pwdEqual = function(val1, val2) {
   return val1 == val2 ? true : false;
  }


  //正則匹配(返回bool值)
  var chk = function (str, reg) {
   return reg.test(str);
  }

  //顯示信息
  var showMsg = function (obj, msg, mark) {
   $(obj).next("#errormsg").remove();//先清除
   var _html = "<span id='errormsg' style='font-size:13px;color:gray;background:url(" + defaults.img_error + ") no-repeat 0 -1px;padding-left:20px;margin-left:5px;'>" + msg + "</span>";
   if (mark)
    _html = "<span id='errormsg' style='font-size:13px;color:gray;background:url(" + defaults.img_success + ") no-repeat 0 -1px;padding-left:20px;margin-left:5px;'>" + msg + "</span>";
   $(obj).after(_html);//再添加
   return mark;
  }
 }
})(jQuery);



  

先來說一說實現原理:

首先定義好正則,和相應的提示信息,

  加上自定義check屬性,

  然后獲取check屬性的值,多個值用空格分開。利用split()將其拆分為數組,在逐個調用check()方法進行驗證。

  之后通過驗證的返回值來確定顯示的信息。

這里有兩個驗證是比較特別的,就是:

1.驗證是否為空 (required)

2.兩次密碼是否一致 (pwd2)

這兩個都沒有用到正則,因為根本就用不上。 兩次密碼是否一致 ,單獨寫了個方法 pwdEqual();

插件里的驗證正則我只寫了幾個 ,如果不夠用可以自行擴展添加。

擴展只需3步:

1.添加正則,

2.添加相應提示信息,

3.check()方法中添加相應 case 處理

查看圖片

插件使用說明:

  1.給表單下要進行驗證的文本框,密碼框 ,多行文本框加上自定義check屬性

  2.多個格式驗證用空格間隔,如(同時驗證必填和郵箱): check="required email"

  3.如果要驗證兩次密碼是否一致,則pwd1和pwd2一起使用,如下圖:

pwd1存儲第一次輸入的值,pwd2存儲第二次輸入的值,如果你只用pwd1還好,但如果只用了pwd2,則驗證是始終無法通過的。

下面給出DEMO示例代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>表單驗證插件</title>
</head>
<body>
 <form id="myform" method="post" action="success.html">
  <ul>
   <li>
   郵箱:<input type="text" name="email" check="required email" />
   </li>
   <li>
   密碼:<input type="password" check="required pwd1" />
   </li>
   <li>
   確認密碼:<input type="password" check="required pwd2" />
   </li>
   <li>
   手機:<input type="text" name="num" check="required mobile" />
   </li>
   <li>
   數字:<input type="text" name="num" check="required num" />
   </li>
   <li>
   地址:<textarea cols="5" rows="5" check="required"></textarea>
   </li>
   <li>
   不加check驗證的文本框:<input type="text" name="num" />
   </li>
  </ul>
  <input type="submit" value="提交" />
 </form>
 <script src="http://www.gimoo.net/t/1904/js/jquery-1.4.4.min.js" type="text/javascript"></script>
 <script src="http://www.gimoo.net/t/1904/js/jquery.similar.checkForm.js" type="text/javascript"></script>
 <script type="text/javascript">
  $("#myform").checkForm();
 </script>
</body>
</html>

示例效果圖片:

查看圖片

示例代碼,成功提交是會跳轉到success.html頁面的,因此你要自己創建個success.html,里面可以什么都不寫。

但是,只要有一個驗證不通過,就不會成功跳轉。

另外,你或許還需要2張圖片:

//圖片路徑
img_error: "img/error.gif",
img_success: "img/success.gif",

查看圖片 查看圖片 上傳在這了,自己右鍵另存為吧。

本文已被整理到了《jquery表單驗證大全》 ,歡迎大家學習閱讀。

以上就是本文的全部內容,希望能夠幫助大家找更好的掌握jquery驗證碼的實現方法。



主站蜘蛛池模板: 王若晰 个人资料| 铁探粤语版在线观看| 2024微信头像图片新款| 狂野时代| 竹内纱里奈作品| 婚姻审判短剧免费观看全集| 辐射避难所掉脑袋问题答案| 刑三狗| 电影网1905免费版| 新娘大作战angelababy| 山田孝之| river flows in you钢琴谱| angelababy婚礼大作战| 抖音. com| 美国派7| 少女集中营阅读| 情人意大利| 13位的电话号码是什么电话 | 黄视频免费观看网站| 晕车喝什么饮料能缓解| 爱情秘密| 漂亮孕妇突然肚子疼视频 | 爱情三选一| 网络流行语| 朱莉安妮av| 每周食品安全排查治理报告表| 女生被艹在线观看| 时诗个人资料| 电视剧零下三十八度手机免费观看| 苹果恋爱多| 国家征收土地多少钱一亩| 女人战争之肮脏的交易| 幸福年简谱| lanarhoades在线av| 假男假女| 美术《对称的美》| 人流后饮食| 郑俊河| 阴阳界 电影| stevenson| fate动漫免费观看|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103