项目中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 }

 

posted @ 2017-10-12 16:46  鸿兮萄  阅读(1292)  评论(0编辑  收藏  举报