• 项目中js 常用的方法和ajax公共类


    一:ajax公用设置

    $.ajaxSetup({
    url : "/xmlhttp/",
    global : false,
    type : 'post',
    dataType : 'json',
    cache : false,
    timeout : 30000,
    beforeSend : function() {
    fnLoading();// 加载loading
    },
    complete : function() {
    $('.loading_layer').remove();// 删除loading
    },
    error : function(jqXHR, textStatus, errorThrown) {
    switch (jqXHR.status) {
    case 404:
    case 500:
    case 502:
    case 503:
    location.href = Url + "pageTo/to404";
    break;
    }
    if (textStatus == 'timeout') {
    mui.alert('系统链接超时,请稍后再试');
    $('.default_btn').prop('disabled', false);
    }
    }
    })

    二:获取url中的参数

    function GetQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null)
    return decodeURI(r[2]);
    return null;
    }

    三:常用方法

      1 // 手机验证码验证
      2 function fnMobileCode(mobileCodeObj) {
      3     var regMobile = /^\d{6}$/;// 手机验证码正则(6位数字)
      4     var mobileCodeVal = mobileCodeObj.val();
      5     if (mobileCodeVal == '') {
      6         mobileCodeObj.siblings('.wrong_tips').text('请输入验证码!').show();
      7         return false;
      8     } else if (!regMobile.test(mobileCodeVal)) {
      9         mobileCodeObj.siblings('.wrong_tips').text('请输入正确验证码!').show();
     10         return false;
     11     } else {
     12         mobileCodeObj.siblings('.wrong_tips').text('').hide();
     13         return true;
     14     }
     15 }
     16 $('#smsCode').keyup(function() {
     17     fnMobileCode($(this));
     18 })
     19 // 手机验证码倒计时
     20 // 验证码倒计时
     21 var countdown = 120;
     22 var timer;
     23 var clickTime = 0;// 点击验证码次数
     24 function settimeCode(val) {
     25     timer = setTimeout(function() {
     26         settimeCode(val)
     27     }, 1000)
     28     if (countdown == 0) {
     29         clearTimeout(timer);
     30         val.prop('disabled', false);
     31         val.html('重新发送');
     32         countdown = 120;
     33         clickTime = 0;// 点击验证码次数
     34     } else {
     35         val.prop('disabled', true);
     36         val.html(countdown + '秒后重发');
     37         countdown--;
     38     }
     39 }
     40 $('.btn_member_mobile_code').click(function() {
     41     var that = $(this);
     42     var mobile = $('#mobile').val();
     43     if (fnIphone($('#mobile'))) {
     44         // 请求验证码
     45         $.ajax({
     46             url : Url + 'basic/SMSSend',
     47             data : {
     48                 smsCode : that.attr('edor_app_type'),
     49                 mobile : mobile
     50             },
     51             success : function(data) {
     52                 if (data.result) {
     53                     // 发送短信验证码倒计时(成功开始倒计时)
     54                     settimeCode(that);
     55                     clickTime = 1;
     56                 } else {
     57                     mui.alert('', data.info, '');
     58                 }
     59             }
     60         })
     61     }
     62 
     63 })
     64 // 客户身份信息(非空&正确性校验)-姓名、证件类型、证件号码、性别、出生日期
     65 // 姓名:2个及2个以上汉字或英文,将目前上限2-15扩增到2-40
     66 function fnUserName(obj) {
     67     var val = obj.val();
     68     var enName = /^(([A-Za-z]+\s?)*[A-Za-z]){2,40}$/;// 英文
     69     var chName = /^[\u4E00-\u9FA5]{2,40}$/; // 中文
     70     if (val == '') {
     71         obj.parents('li').find('.wrong_tips').text('请输入姓名!').show();
     72         return false;
     73     } else if (!(enName.test(val) || chName.test(val))) {
     74         obj.parents('li').find('.wrong_tips').text('请输入2个及2个以上汉字或英文!').show();
     75         return false;
     76     } else {
     77         obj.parents('li').find('.wrong_tips').text('').hide();
     78         return true;
     79     }
     80 }
     81 function fnCheckName(obj) {
     82     obj.keyup(function() {
     83         fnUserName(obj);
     84     })
     85     obj.bind('input', function() {
     86         fnUserName(obj);
     87     })
     88 }
     89 // 身份证件号码校验 & 其他类型证件号校验(除身份证号) ---测试
     90 function fnId(obj, objType) {
     91     var val = obj.val();
     92     var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;// 身份证号
     93     var regNo = /^[\da-zA-Z\u4E00-\u9FA5]{6,25}$/;// 6-25个数字字母 其他证件号码
     94     if (objType.find('option:selected').val() != '请选择证件类型') {
     95         if (objType.find('option:selected').val() == '01') {
     96             if (val == '') {
     97                 obj.parents('li').find('.wrong_tips').text('请输入证件号码!').show();
     98                 $('#birthdayDate').val('');
     99                 $('.gender').get(0).selectedIndex = 0;
    100                 return false;
    101             } else if (!reg.test(val)) {
    102                 obj.parents('li').find('.wrong_tips').text('请输入正确的证件号码!')
    103                         .show();
    104                 $('#birthdayDate').val('');
    105                 $('.gender').get(0).selectedIndex = 0;
    106                 return false;
    107             } else {
    108                 var birthdayNo, genderNo;
    109                 if (val.length == 15) {
    110                     birthdayNo = val.charAt(6) + val.charAt(7);
    111                     if (parseInt(birthdayNo) < 10) {
    112                         birthdayNo = '20' + val.substring(6, 12);
    113                     } else {
    114                         birthdayNo = '19' + val.substring(6, 12);
    115                     }
    116                     genderNo = val.substring(14, 15);
    117                     var year = val.substring(6, 8);
    118                     var month = val.substring(8, 10);
    119                     var day = val.substring(10, 12);
    120                     var temp_date = new Date(year, parseFloat(month) - 1,
    121                             parseFloat(day));
    122                     // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
    123                     if (temp_date.getYear() != parseFloat(year)
    124                             || temp_date.getMonth() != parseFloat(month) - 1
    125                             || temp_date.getDate() != parseFloat(day)) {
    126                         $('#birthdayDate').val('');
    127                         $('.gender').get(0).selectedIndex = 0;
    128                         obj.parents('li').find('.wrong_tips').text(
    129                                 '请输入正确的证件号码!').show();
    130                         return false;
    131                     }
    132                 } else if (val.length == 18) {
    133                     birthdayNo = val.substring(6, 14);
    134                     genderNo = val.substring(16, 17);
    135                     var year = val.substring(6, 10);
    136                     var month = val.substring(10, 12);
    137                     var day = val.substring(12, 14);
    138                     var temp_date = new Date(year, parseFloat(month) - 1,
    139                             parseFloat(day));
    140                     // 这里用getFullYear()获取年份,避免千年虫问题
    141                     if (temp_date.getFullYear() != parseFloat(year)
    142                             || temp_date.getMonth() != parseFloat(month) - 1
    143                             || temp_date.getDate() != parseFloat(day)) {
    144                         $('#birthdayDate').val('');
    145                         $('.gender').get(0).selectedIndex = 0;
    146                         obj.parents('li').find('.wrong_tips').text(
    147                                 '请输入正确的证件号码!').show();
    148                         return false;
    149                     }
    150                 } else {
    151                     $('#birthdayDate').val('');
    152                     $('.gender').get(0).selectedIndex = 0;
    153                     obj.parents('li').find('.wrong_tips').text('请输入正确的证件号码!')
    154                             .show();
    155                     return false;
    156                 }
    157                 // 获取日期
    158                 $('#birthdayDate').val(
    159                         birthdayNo.substring(0, 4) + "-"
    160                                 + getZero(parseInt(birthdayNo.substring(4, 6)))
    161                                 + "-" + birthdayNo.substring(6, 8));
    162                 $("#birthdayDate")
    163                         .scroller(
    164                                 'setDate',
    165                                 new Date(birthdayNo.substring(0, 4),
    166                                         getZero(parseInt(birthdayNo.substring(
    167                                                 4, 6)) - 1), birthdayNo
    168                                                 .substring(6, 8)), true);
    169                 // 获取性别
    170                 if (parseInt(genderNo) % 2 == 1) {
    171                     fnCurBank($('.gender'), '0', $('.gender_name'));
    172                 } else {
    173                     fnCurBank($('.gender'), '1', $('.gender_name'));
    174                 }
    175                 obj.parents('li').find('.wrong_tips').text('').hide();
    176                 return true;
    177             }
    178         } else {
    179             if (val == '') {
    180                 obj.parents('li').find('.wrong_tips').text('请输入证件号码!').show();
    181                 return false;
    182             } else if (!regNo.test(val)) {
    183                 obj.parents('li').find('.wrong_tips').text('请输入正确的证件号码!')
    184                         .show();
    185                 return false;
    186             } else {
    187                 obj.parents('li').find('.wrong_tips').text('').hide();
    188                 return true;
    189             }
    190         }
    191     }
    192 }
    193 function fnCheckId(obj, objType) {
    194     obj.keyup(function() {
    195         fnId(obj, objType);
    196     })
    197     obj.bind('input', function() {
    198         fnId(obj, objType);
    199     })
    200 }
    201 //校验出生日期非空
    202 function fnBirthday(obj,str){
    203   var val = obj.val();
    204   if(val === ''){
    205   obj.parents('li').find('.wrong_tips').text(str+'!').show();
    206     return false;
    207   }else{
    208     obj.parents('li').find('.wrong_tips').text(str+'!').hide();
    209     return true;
    210   }
    211 }
    212 function fnCheckBirthday(obj, str) {
    213     obj.change(function() {
    214         fnBirthday(obj, str);
    215     })
    216 }
    217 // 手机号校验
    218 function fnIphone(obj) {
    219     var regIphone = /^1[3|4|5|7|8]\d{9}$|^0085[23]\d{8}$|^00886\d{8}$/;
    220     var val = obj.val();
    221     if (val == '') {
    222         obj.parents('li').find('.wrong_tips').text('请输入手机号!').show();
    223         return false;
    224     } else if (!regIphone.test(val)) {
    225 
    226         obj.parents('li').find('.wrong_tips').text('请输入正确的手机号!').show();
    227         return false;
    228     } else {
    229         obj.parents('li').find('.wrong_tips').text('').hide();
    230         return true;
    231     }
    232 }
    233 function fnCheckIphone(obj) {
    234     obj.keyup(function() {
    235         fnIphone(obj);
    236     })
    237     obj.bind('input', function() {
    238         fnIphone(obj);
    239     })
    240 }
    241 // 去掉所有空格
    242 function fnTrim(str, is_global) {
    243     var result;
    244     result = str.replace(/(^\s+)|(\s+$)/g, "");
    245     if (is_global.toLowerCase() == "g") {
    246         result = result.replace(/\s/g, "");
    247     }
    248     return result;
    249 }
    250 //性别
    251 //校验选择银行
    252 function fnInitBank(aBank,str){
    253   if(aBank.val()==""){
    254       aBank.parents('li').find('.wrong_tips').text(str+'!').show();
    255     return false;
    256   }else{
    257     aBank.parents('li').find('.wrong_tips').text('').hide();
    258     return true;
    259   }
    260 }
    261 function fnCheckBank(obj, str) {
    262     obj.change(function() {
    263         fnInitBank(obj, str);
    264     })
    265     obj.keyup(function() {
    266         fnInitBank(obj, str);
    267     })
    268 }
    269 //主题:2个及2个以上汉字或英文,将目前上限2-15扩增到2-40
    270 function fnUserTheme(obj,str){
    271  var val = obj.val()
    272  var data=val.trim();
    273   if(val === ''){
    274   obj.parents('li').find('.wrong_tips').text(str+'!').show();
    275     return false;
    276   }else if(data.length==0){
    277       obj.parents('li').find('.wrong_tips').text(str+'!').show();
    278       return false;
    279     } else {
    280         obj.parents('li').find('.wrong_tips').text('').hide();
    281         return true;
    282     }
    283 }
    284 // 校验主题
    285 function fnCheckTheme(obj, str) {
    286     obj.keyup(function() {
    287         fnUserTheme(obj, str);
    288     })
    289     obj.bind('input', function() {
    290         fnUserTheme(obj, str);
    291     })
    292 }
    293 //校验图片是否上传成功
    294 function fnImg(img,val,str){
    295   if(val === ''){
    296   img.parents('li').find('.wrong_tips').text(str+'!').show();
    297     return false;
    298   }else{
    299     img.parents('li').find('.wrong_tips').text('').hide();
    300     return true;
    301   }
    302 }
    303 function fnCheckImg(img,val,str) {
    304     obj.change(function() {
    305         fnImg(img,val,str);
    306     })
    307 //    obj.bind('input', function() {
    308 //        fnImg(img,val,str);
    309 //    })
    310 }
    311 // 身份证校验
    312 function fnIdcode(obj, objType) {
    313     // 获取当前日期
    314     var Year = parseInt(new Date().getFullYear());
    315     var Month = parseInt(new Date().getMonth()) + 1;
    316     var Day = parseInt(new Date().getDate());
    317 
    318     var val = obj.val().trim();
    319     var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;// 身份证号
    320     if (val == '') {
    321         obj.parents('li').find('.wrong_tips').text('请输入证件号码!').show();
    322         return false;
    323     } else if (!reg.test(val)) {
    324         obj.parents('li').find('.wrong_tips').text('请输入正确的证件号码!').show();
    325         return false;
    326     } else {
    327         if (val.length == 15) {
    328             var year = val.substring(6, 8);
    329             var month = val.substring(8, 10);
    330             var day = val.substring(10, 12);
    331             var temp_date = new Date(year, parseFloat(month) - 1,
    332                     parseFloat(day));
    333             // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
    334             if (temp_date.getYear() != parseFloat(year)
    335                     || temp_date.getMonth() != parseFloat(month) - 1
    336                     || temp_date.getDate() != parseFloat(day)) {
    337                 obj.parents('li').find('.wrong_tips').text('请输入正确的证件号码!')
    338                         .show();
    339                 return false;
    340             }
    341             // 验证是否小于18周岁大于60周岁
    342             if (getAge(year + "-" + month + "-" + day) < 18
    343                     || getAge(year + "-" + month + "-" + day) > 60) {
    344                 obj.parents('li').find('.wrong_tips').text(
    345                         '只能在18至60周岁之间!').show();
    346                 return false;
    347             }
    348         } else if (val.length == 18) {
    349             var year = val.substring(6, 10);
    350             var month = val.substring(10, 12);
    351             var day = val.substring(12, 14);
    352             var temp_date = new Date(year, parseFloat(month) - 1,
    353                     parseFloat(day));
    354             // 这里用getFullYear()获取年份,避免千年虫问题
    355             if (temp_date.getFullYear() != parseFloat(year)
    356                     || temp_date.getMonth() != parseFloat(month) - 1
    357                     || temp_date.getDate() != parseFloat(day)) {
    358                 obj.parents('li').find('.wrong_tips').text('请输入正确的证件号码!')
    359                         .show();
    360                 return false;
    361             }
    362             // 验证是否小于18周岁大于60周岁
    363             if (getAge(year + "-" + month + "-" + day) < 18
    364                     || getAge(year + "-" + month + "-" + day) > 60) {
    365                 obj.parents('li').find('.wrong_tips').text(
    366                         '只能在18至60周岁之间!').show();
    367                 return false;
    368             }
    369         } else {
    370             obj.parents('li').find('.wrong_tips').text('请输入正确的证件号码!').show();
    371             return false;
    372         }
    373         obj.parents('li').find('.wrong_tips').text('').hide();
    374         return true;
    375     }
    376 }
    377 function fnCheckIdcode(obj) {
    378     obj.keyup(function() {
    379         fnIdcode(obj);
    380     })
    381     obj.bind('input', function() {
    382         fnIdcode(obj);
    383     })
    384 }
    385 function getAge(str) {
    386     var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    387     if (r == null)
    388         return -1;
    389     var birthday = new Date(str);
    390     var d = new Date();
    391     var age = d.getFullYear()
    392             - birthday.getFullYear()
    393             - ((d.getMonth() < birthday.getMonth() || d.getMonth() == birthday
    394                     .getMonth()
    395                     && d.getDate() < birthday.getDate()) ? 1 : 0);
    396     return age;
    397 }
    398 /* ++++++++++++++++++++++++++++++公共组件++++++++++++++++++++++++++++++++++ */
    399 /* 加载loading-所有页面 */
    400 function fnLoading() {
    401     $('.loading_layer').remove();
    402     var html = '<div class="loading_layer">' + '<div class="spinnerDiv">'
    403             + '<div class="rect1"></div>' + '<div class="rect2"></div>'
    404             + '<div class="rect3"></div>' + '<div class="rect4"></div>'
    405             + '<div class="rect5"></div>' + '</div>' + '</div>';
    406     $('body').append(html);
    407 }
    408 /*
    409  * // 监听加载状态改变 document.onreadystatechange = fnCompleteLoading; //
    410  * 加载状态为complete时移除loading效果 function fnCompleteLoading() { if
    411  * (document.readyState == "complete") { $('.loading_layer').remove(); }else{
    412  * fnLoading(); } }
    413  */
    414 /**
    415  * 错误提示-公用
    416  */
    417 /* 弹出层 */
    418 function fnLayerBox(msg) {
    419     $('.layer_box').remove();
    420     var html = '<div class="layer_box">'
    421             + '<div class="layer_main">'
    422             + '<div class="layer_main_tips">'
    423             + '<p>'
    424             + msg
    425             + '</p>'
    426             + '</div>'
    427             + '<input type="button" value="我知道了" class="layer_know_btn layer_btn">'
    428             + '</div>' + '</div>';
    429     $('body').append(html);
    430     $('.layer_btn').click(function() {
    431         $(this).parents('.layer_box').remove();
    432     })
    433 }
    434 //-----------------------------2017年0724------------------------------------------
    435 //校验内容不为空和空格
    436 function fnNocon(obj,str){
    437   var val = obj.val();
    438  var data=val.trim();
    439   if(val === ''){
    440   obj.parents('li').find('.wrong_tips').text(str+'!').show();
    441     return false;
    442   }else if(data.length==0){
    443       obj.parents('li').find('.wrong_tips').text(str+'!').show();
    444       return false;
    445   }else{
    446     obj.parents('li').find('.wrong_tips').text('').hide();
    447     return true;
    448   }
    449 }
    450 function fnCheckNocon(obj,str){
    451   obj.keyup(function(){
    452     fnNocon(obj,str);
    453   })
    454   obj.bind('input',function(){
    455     fnNocon(obj,str);
    456   })
    457 }
    458 
    459 //会议链接地址是否正确
    460 function fnHref(obj){
    461   var val = obj.val();
    462   var regUrl=/^([hH][tT]{2}[pP]|[hH][tT]{2}[pP][sS]|[hH][Ff][tT][pP][sS]?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/;  //url
    463   if(val === ''){
    464   obj.parents('li').find('.wrong_tips').text('请输入会议入口链接!').show();
    465     return false;
    466   }else if(!regUrl.test(val)){
    467       obj.parents('li').find('.wrong_tips').text('您输入的链接地址格式不正确!').show();
    468       return false;
    469   }else{
    470     obj.parents('li').find('.wrong_tips').text('').hide();
    471     return true;
    472   }
    473 }
    474 function fnCheckHref(obj){
    475   obj.keyup(function(){
    476     fnHref(obj);
    477   })
    478   obj.bind('input',function(){
    479     fnHref(obj);
    480   })
    481 }
    482 //--------------------------光标----------------------
    483 var preValue;
    484 function fnFormatBankNo(obj,prev){
    485             var position = obj.get(0).selectionStart;
    486             var value = obj.val().replace(/\s/g,'');
    487             obj.val(value);
    488             if(prev.length == obj.val().length){
    489                 setCaretPosition(obj.get(0),position-1);
    490             }else{
    491                 setCaretPosition(obj.get(0),position);
    492             }
    493 
    494         }
    495     function fnRunFormat(obj){
    496                 obj.keydown(function(e){
    497                     prevValue = $(this).val();
    498                 });
    499                 obj.keyup(function(){
    500                     fnFormatBankNo(obj,prevValue);
    501                 });
    502             }
    503 
    504 //设置光标位置
    505 function setCaretPosition(ctrl, pos){
    506   if(ctrl.setSelectionRange)
    507   {
    508     ctrl.focus();
    509     ctrl.setSelectionRange(pos,pos);
    510   }
    511   else if (ctrl.createTextRange) {
    512     var range = ctrl.createTextRange();
    513     range.collapse(true);
    514     range.moveEnd('character', pos);
    515     range.moveStart('character', pos);
    516     range.select();
    517   }
    518 }
    519 //*****************插件下拉框*********************//
    520 function showData(data,dom){
    521     if(data){
    522         (function($, doc) {
    523         $.init();
    524         $.ready(function() {
    525             var xlPicker = new $.PopPicker();
    526             xlPicker.setData(eval(data));
    527             var showXlPickerButton = $(dom);
    528             showXlPickerButton.each(function(i, showXlPicker) {
    529                 showXlPicker.addEventListener('tap', function(event) {
    530                     FnBlur();
    531                     var index = this.getAttribute('index');
    532                     var result = $(dom)[index];
    533                     xlPicker.show(function(items) {
    534                      result.value=eval(JSON.stringify(items[0].text)) ;
    535                     //返回 false 可以阻止选择框的关闭
    536                     //return false;
    537                     });    
    538                 }, false);
    539             });
    540         });
    541     })(mui, document);
    542     }
    543 }
    544 function showDatas(data,dom,val){
    545     if(data){
    546          $('input').blur();
    547             (function($, doc) {
    548                 $.init();
    549                 $.ready(function() {
    550                     var xlPicker = new $.PopPicker();
    551                     xlPicker.setData(data);
    552                     var showXlPickerButton = $(dom);
    553                     var userResult = $(val);
    554                     showXlPickerButton.each(function(i, showXlPicker) {
    555                         showXlPicker.addEventListener('tap', function(event) {
    556                             FnBlur();
    557                             xlPicker.show(function(items) {
    558                             userResult.value = items[0].value;
    559                             showXlPickerButton.value=items[0].text ;
    560                             //返回 false 可以阻止选择框的关闭
    561                             //return false;
    562                             });    
    563                         }, false);
    564                     });
    565                 });
    566             })(mui, document);
    567     }
    568 }
    569 function FnBlur(){
    570     $('.text').blur();
    571 }
    572 //发布会议页面中的会议链接地址是否正确
    573 function fnHRef(obj){
    574   var val = obj.val();
    575   var regUrl=/^([hH][tT]{2}[pP][sS]):\/\/[mM]+(\.([qQ][Ll][cC][hH][aA][tT])+)+(\.([cC][oO][mM])+)\/+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/;  //url
    576   if(val === ''){
    577   obj.parents('li').find('.wrong_tips').text('请输入会议入口链接!').show();
    578     return false;
    579   }else if(!regUrl.test(val)){
    580     obj.parents('li').find('.wrong_tips').text('您输入的链接地址格式不正确!').show();
    581     return false;
    582   }else{
    583     obj.parents('li').find('.wrong_tips').text('').hide();
    584     return true;
    585   }
    586 }
    587 function fnCheckHRef(obj){
    588   obj.keyup(function(){
    589     fnHRef(obj);
    590   })
    591   obj.bind('input',function(){
    592     fnHRef(obj);
    593   })
    594 }
    其实人生 我只是不想输而已
  • 相关阅读:
    [华为]计算字符串的相似度
    Java继承和组合
    Java多态(注意事项)
    Eclipse快捷键
    求二叉树中节点的最大距离
    设计模式-工厂模式
    设计模式-单例模式
    滴滴校招0910
    八大排序算法之七-归并排序
    单链表的实现(创建+排序(选择))
  • 原文地址:https://www.cnblogs.com/gongxiaoyan/p/7656883.html
Copyright © 2020-2023  润新知