• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    Ajax異步方式實現登錄與驗證

    來源:懂視網 責編:小采 時間:2020-11-27 22:52:00
    文檔

    Ajax異步方式實現登錄與驗證

    Ajax異步方式實現登錄與驗證:本文實例講述了Ajax異步方式實現登錄與驗證的詳細代碼,分享給大家供大家參考。具體如下: 登錄代碼 這個是使用Bootstrap3的組件功能實現的 <div class=login_con_R> <h4>登錄</h4> <FORM id=loginF
    推薦度:
    導讀Ajax異步方式實現登錄與驗證:本文實例講述了Ajax異步方式實現登錄與驗證的詳細代碼,分享給大家供大家參考。具體如下: 登錄代碼 這個是使用Bootstrap3的組件功能實現的 <div class=login_con_R> <h4>登錄</h4> <FORM id=loginF

    本文實例講述了Ajax異步方式實現登錄與驗證的詳細代碼,分享給大家供大家參考。具體如下:

    登錄代碼

    這個是使用Bootstrap3的組件功能實現的

    <div class="login_con_R">
     <h4>登錄</h4>
     <FORM id="loginFormId" class="form-horizontal" action="login" method="post">
     <div class="form-group input-group">
     <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
     <input type="text" class="form-control" placeholder="用戶名" name="username" id="j_username" value="koala">
     </div>
     <div class="form-group input-group">
     <span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>
     <input type="password" name="password" id="j_password" class="form-control" placeholder="密碼" value="888888"/>
     </div> 
     <div class="form-group input-group" style="margin-top: 45px;">
     <button type="button" class="btn btn-primary btn-block" id="loginBtn">登錄</button>
     </div>
     </FORM>
     </div>
    

    異步登錄請求的代碼

    <script>
     $(function(){
     var btnLogin = $('#loginBtn');
     var form = $('#loginFormId');
     $('body').keydown(function(e) {
     if (e.keyCode == 13) {
     dologin();
     }
     });
     btnLogin.on('click',function() {
     dologin();
     });
    
     var dologin = function() {
     var userNameElement = $("#j_username");
     var passwordElement = $("#j_password");
     var username = userNameElement.val();
     var password = passwordElement.val();
     if (!Validation.notNull($('body'), userNameElement, username, '用戶名不能為空')) {
     return false;
     }
     if (!Validation.notNull($('body'), passwordElement, password, '密碼不能為空')) {
     return false;
     }
     btnLogin.attr('disabled', 'disabled').html('正在登錄...');
     var param = form.serialize();
     $.ajax({
     url: contextPath+"/login.koala",
     dataType: "json",
     data: param,
     type: "POST",
     success: function(data){
     if(data.success){
     $('.login_con_R').message({
     type: 'success',
     content: '登錄成功!'
     });
     /*這里使用的異步請求,當請求登錄成功的時候,重新定位到index界面*/
     window.location.href=contextPath+"/index.koala";
     }else{
     btnLogin.removeAttr('disabled').html('登錄');
     $('.login_con_R').message({
     type: 'error',
     content: data.errorMessage
     });
     }
     }
     });
     };
     }); 
    
     </script>
    
    

    使用到的驗證js代碼Validation.js

    Validator = {
     Require : {expression:/.+/,errorMsg:"該字段不能為空"},
     Email : {expression:/^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/,errorMsg:"Email格式不正確"},
     Mobile:{expression:/^(1[3|5|8]{1}\d{9})$/,errorMsg:"手機格式不正確"},
     TelePhone:{expression:/^(((0\d{2,3}-)?\d{7,8}(-\d{4})?))$/,errorMsg:"電話號碼格式不正確"},
     IdCard:{expression:/^\d{15}(\d{2}[A-Za-z0-9])?$/,errorMsg:"身份證號碼格式不正確"},
     Number:{expression:/^-?(\d+|[1-9]\d*\.\d+|0\.\d*[1-9]\d*|0?\.0+|0)$/,errorMsg:"僅支持數字"},
     English:{expression:/^[A-Za-z]+$/,errorMsg:"僅支持英文字符"},
     Chinese:{expression:/^[\u0391-\uFFE5]+$/,errorMsg:"僅支持中文字符"},
     URL:{expression:/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,errorMsg:"URL地址格式不正確"},
     Regex:{errorMsg:"格式不正確"},
     UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
     IsSafe : function(str){return !this.UnSafe.test(str);},
     SafeString : {expression:"this.IsSafe(value)",errorMsg:"僅支持中文字符"},
     ErrorItem : [document.forms[0]],
     ErrorMessage : ["以下原因導致提交失?。篭t\t\t\t"],
     Validate : function(theForm, mode){
     var obj = theForm || event.srcElement;
     var count = obj.elements.length;
     this.ErrorMessage.length = 1;
     this.ErrorItem.length = 1;
     this.ErrorItem[0] = obj;
     for(var i=0;i<count;i++){
     with(obj.elements[i]){
     if(disabled)continue;
     var _dataType = getAttribute("dataType");
     if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined") continue;
     this.ClearState(obj.elements[i]);
     if(getAttribute("require") == "false" && value == "") continue;
     var errorMsg = getAttribute("errorMsg")? getAttribute("errorMsg") : this[_dataType].errorMsg;
     errorMsg = errorMsg || "invalid";
     var validateExpr = getAttribute("validateExpr");
     validateExpr = validateExpr || this[_dataType].expression;
     switch(_dataType){
     case "Date" :
     case "Repeat" :
     case "Range" :
     case "Compare" :
     case "Custom" :
     case "Group" :
     case "Limit" :
     case "LimitB" :
     case "SafeString" :
     if(!eval(validateExpr)) {
     this.AddError(i, errorMsg);
     }
     break;
     default :
     if(!eval(validateExpr).test(value)){
     this.AddError(i, errorMsg);
     }
     break;
     }
     }
     }
     if(this.ErrorMessage.length > 1){
     var content = this.ErrorMessage[1].replace(/\d+:/," ");
     var $element = $(this.ErrorItem[1]);
     var name = $element.attr('name');
     if(name.indexOf('DTO') != -1){
     name = name.split('.')[1];
     }
     var $targetElement = $element;
     var $tempElement = $targetElement.closest('form').find('#' + name + 'ID');
     if($tempElement.hasClass('select')){
     $targetElement = $tempElement;
     }
     showErrorMessage($element.closest('.modal'), $targetElement, content);
     return false;
     }
     return true;
     },
     limit : function(len,min, max){
     min = min || 0;
     max = max || Number.MAX_VALUE;
     return min <= len && len <= max;
     },
     LenB : function(str){
     return str.replace(/[^\x00-\xff]/g,"**").length;
     },
     ClearState : function(elem){
     with(elem){
     if(style.color == "red")
     style.color = "";
     var ligertipid = getAttribute("ligertipid");
     if(ligertipid && ligertipid != ""){
     removeAttribute("ligertipid");
     $(elem).ligerHideTip();
     }
     }
     },
     AddError : function(index, str){
     this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
     this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
     },
     Exec : function(op, reg){
     return new RegExp(reg,"g").test(op);
     },
     compare : function(op1,operator,op2){
     switch (operator) {
     case "NotEqual":
     return (op1 != op2);
     case "GreaterThan":
     return (op1 > op2);
     case "GreaterThanEqual":
     return (op1 >= op2);
     case "LessThan":
     return (op1 < op2);
     case "LessThanEqual":
     return (op1 <= op2);
     default:
     return (op1 == op2);
     }
     },
     MustChecked : function(name, min, max){
     var groups = document.getElementsByName(name);
     var hasChecked = 0;
     min = min || 1;
     max = max || groups.length;
     for(var i=groups.length-1;i>=0;i--)
     if(groups[i].checked) hasChecked++;
     return min <= hasChecked && hasChecked <= max;
     },
     IsDate : function(op, formatString){
     formatString = formatString || "ymd";
     var m, year, month, day;
     switch(formatString){
     case "ymd" :
     m = op.match(new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$"));
     if(m == null ) return false;
     day = m[6];
     month = m[5]--;
     year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
     break;
     case "dmy" :
     m = op.match(new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$"));
     if(m == null ) return false;
     day = m[1];
     month = m[3]--;
     year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
     break;
     default :
     break;
     }
     var date = new Date(year, month, day);
     return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate());
     function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
     }
    };
    
    var Validation = {
     notNull: function($container, $element, content, errorMessage) {
     if (isNull(content)) {
     showErrorMessage($container, $element, errorMessage);
     return false;
     }
     return true;
     },
     email: function($container, $element, content, errorMessage) {
     var reg = new RegExp(/^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/);
     if (!reg.test(content)) {
     showErrorMessage($container, $element, errorMessage);
     return false;
     }
     return true;
     },
     serialNmuber: function($container, $element, content, errorMessage) {
     var reg = new RegExp(/^[0-9a-zA-Z_-]*$/);
     if (!reg.test(content)) {
     showErrorMessage($container, $element, errorMessage);
     return false;
     }
     return true;
     },
     number: function($container, $element, content, errorMessage) {
     var reg = new RegExp(/^[0-9]*$/);
     if (!reg.test(content)) {
     showErrorMessage($container, $element, errorMessage);
     return false;
     }
     return true;
     },
     humanName: function($container, $element, content, errorMessage) {
     var reg = new RegExp(/(^[A-Z a-z]*$)|(^[\u4e00-\u9fa5]*$)/);
     if (!reg.test(content)) {
     showErrorMessage($container, $element, errorMessage);
     return false;
     }
     return true;
     },
     checkByRegExp: function($container, $element, regExp, content, errorMessage){
     var reg = new RegExp(regExp);
     if (!reg.test(content)) {
     showErrorMessage($container, $element, errorMessage);
     return false;
     }
     return true;
     }
    };
    
    /**
     * 檢查是否為空
     */
    var isNull = function(item){
     if(item == null || item == "" || item.replace(/(^\s*)|(\s*$)/g, "") == "" ){
     return true;
     }
     return false;
    };
    
    /**
     * 顯示提示信息
     */
    var showErrorMessage = function($container, $element, content){
     $element.popover({
     content: content,
     trigger: 'manual',
     container: $container
     }).popover('show').on({
     'blur': function(){
     $element.popover('destroy');
     $element.parent().removeClass('has-error');
     },
     'keydown': function(){
     $element.popover('destroy');
     $element.parent().removeClass('has-error');
     }
     }).focus().parent().addClass('has-error');
    };
    

    希望本文所述對大家學習有所幫助。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Ajax異步方式實現登錄與驗證

    Ajax異步方式實現登錄與驗證:本文實例講述了Ajax異步方式實現登錄與驗證的詳細代碼,分享給大家供大家參考。具體如下: 登錄代碼 這個是使用Bootstrap3的組件功能實現的 <div class=login_con_R> <h4>登錄</h4> <FORM id=loginF
    推薦度:
    標簽: 校驗 ajax 異步
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲综合精品一二三区在线| 久久精品一区二区三区中文字幕 | 91精品成人免费国产| 九九精品99久久久香蕉| 精品四虎免费观看国产高清午夜| 国产精品视频一区国模私拍 | 久久久久无码精品| 99精品欧美一区二区三区| 精品人妻伦九区久久AAA片69| 国产精品99在线播放| 97久久超碰国产精品2021| 国产日韩久久久精品影院首页| 久久久久99精品成人片| 国产成人精品日本亚洲网址| 欧美国产日本精品一区二区三区| 国产一区二区精品尤物| 亚洲精品午夜国产VA久久成人| 亚洲∧v久久久无码精品| 国产cosplay精品视频| 亚洲AV无码成人精品区蜜桃| 欧美午夜精品久久久久久浪潮| 国产伦精品免编号公布| 中文精品久久久久人妻| 99在线精品免费视频九九视| 中文无码久久精品| 欧美一区二区精品久久| 国产成人精品免费视频动漫 | 久久精品无码一区二区日韩AV| 国产精品女人呻吟在线观看| 2024国产精品极品色在线| 日韩精品在线一区二区| 欧美精品黑人巨大在线播放| 欧美777精品久久久久网| 永久免费精品视频| 成人国产精品动漫欧美一区| 人妻少妇精品视频二区| 国产国拍亚洲精品福利| MM1313亚洲精品无码| 国产精品亚洲欧美大片在线看| 精品日韩在线视频一区二区三区| 久99久无码精品视频免费播放|