一: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 }