项目常见的函数封装,基于Jquery

来源:互联网 发布:淘宝店铺转让靠谱吗 编辑:程序博客网 时间:2024/05/16 17:29
  1. /// <reference path="jquery-1.8.0.min.js" />  
  2. /* 
  3. * DIV或元素居中 
  4. * @return 
  5. */  
  6. jQuery.fn.mCenterDiv = function () {  
  7.     this.css("position""absolute");  
  8.     this.css("border""1px solid #ccc");  
  9.     this.css("top", ($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");  
  10.     this.css("left", ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");  
  11.     this.show(100);  
  12.     return this;  
  13. };  
  14.   
  15. /* 
  16. * 替换字符串中所有符合的字符 
  17. * @param ASource 源字符串 
  18. * @param AFindText 待替换字符 
  19. * @param ARepText 替换后字符 
  20. * @return 
  21. */  
  22. jQuery.mReplaceAll = function (ASource,AFindText, ARepText) {  
  23.     var raRegExp = new RegExp(AFindText, "g");  
  24.     return ASource.replace(raRegExp, ARepText);  
  25. };  
  26.   
  27. /* 
  28. * 判断object是否空,未定义或null 
  29. * @param object  
  30. * @return 
  31. */  
  32. jQuery.mIsNull = function (obj) {  
  33.     if (obj == "" || typeof(obj) == "undefined" || obj == null) {  
  34.         return true;  
  35.     }  
  36.     else {  
  37.         return false;  
  38.     }  
  39. };  
  40.   
  41. /* 
  42. * 获取URL参数 
  43. * @param name 参数 
  44. * @return 
  45. */  
  46. jQuery.mGetUrlParam = function (name) {  
  47.     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");  
  48.     var r = window.location.search.substr(1).match(reg);  
  49.     if (r != nullreturn unescape(r[2]); return null;  
  50. };  
  51.   
  52. /* 
  53. * 乘法函数,用来得到精确的乘法结果 
  54. * @param arg1 参数1 
  55. * @param arg2 参数2 
  56. * @return 
  57. */  
  58. jQuery.mAccMul = function(arg1, arg2) {  
  59.     var m = 0, s1 = arg1.toString(), s2 = arg2.toString();  
  60.     try { m += s1.split(".")[1].length } catch (e) { }  
  61.     try { m += s2.split(".")[1].length } catch (e) { }  
  62.     return Number(s1.replace(".""")) * Number(s2.replace(".""")) / Math.pow(10, m)  
  63. }  
  64.   
  65. /* 
  66. * 获取随机数 
  67. * @param x 下限 
  68. * @param y 上限 
  69. * @return 
  70. */  
  71. jQuery.mGetRandom = function (x, y) {  
  72.    return parseInt(Math.random() * (y - x + 1) + x);  
  73.   
  74. };  
  75.   
  76. /* 
  77. * 将数值四舍五入(保留2位小数)后格式化成金额形式 
  78. * @param num 数值(Number或者String) 
  79. * @return 金额格式的字符串,如'1,234,567.45' 
  80. */  
  81. jQuery.mFormatCurrency = function(num) {  
  82.     num = num.toString().replace(/\$|\,/g, '');  
  83.     if (isNaN(num))  
  84.         num = "0";  
  85.     sign = (num == (num = Math.abs(num)));  
  86.     num = Math.floor(num * 100 + 0.50000000001);  
  87.     cents = num % 100;  
  88.     num = Math.floor(num / 100).toString();  
  89.     if (cents < 10)  
  90.         cents = "0" + cents;  
  91.     for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)  
  92.         num = num.substring(0, num.length - (4 * i + 3)) + ',' +  
  93.     num.substring(num.length - (4 * i + 3));  
  94.     return (((sign) ? '' : '-') + num + '.' + cents);  
  95. }  
  96.   
  97. /* 
  98. * 正则验证 
  99. * @param s 验证字符串 
  100. * @param type 验证类型 money,china,mobile等  
  101. * @return 
  102. */  
  103. jQuery.mCheck = function (s, type) {  
  104.     var objbool = false;  
  105.     var objexp = "";  
  106.     switch (type) {  
  107.         case 'money'//金额格式,格式定义为带小数的正数,小数点后最多三位  
  108.             objexp = "^[0-9]+[\.][0-9]{0,3}$";  
  109.             break;  
  110.         case 'numletter_'//英文字母和数字和下划线组成     
  111.             objexp = "^[0-9a-zA-Z\_]+$";  
  112.             break;  
  113.         case 'numletter'//英文字母和数字组成  
  114.             objexp = "^[0-9a-zA-Z]+$";  
  115.             break;  
  116.         case 'numletterchina'//汉字、字母、数字组成   
  117.             objexp = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";  
  118.             break;  
  119.         case 'email'//邮件地址格式   
  120.             objexp = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";  
  121.             break;    
  122.         case 'tel'//固话格式   
  123.             objexp = /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;  
  124.             break;  
  125.         case 'mobile'//手机号码   
  126.             objexp = "^(13[0-9]|15[0-9]|18[0-9])([0-9]{8})$";  
  127.             break;  
  128.         case 'decimal'//浮点数   
  129.             objexp = "^[0-9]+([.][0-9]+)?$";  
  130.             break;  
  131.         case 'url'//网址   
  132.             objexp = "(http://|https://){0,1}[\w\/\.\?\&\=]+";  
  133.             break;  
  134.         case 'date'//日期 YYYY-MM-DD格式  
  135.             objexp = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;  
  136.             break;  
  137.         case 'int'//整数   
  138.             objexp = "^[0-9]*[1-9][0-9]*$";  
  139.             break;  
  140.         case 'int+'//正整数包含0  
  141.             objexp = "^\\d+$";  
  142.             break;  
  143.         case 'int-'//负整数包含0  
  144.             objexp = "^((-\\d+)|(0+))$";  
  145.             break;  
  146.         case 'china'//中文   
  147.             objexp = /^[\u0391-\uFFE5]+$/;  
  148.             break;  
  149.     }  
  150.     var re = new RegExp(objexp);  
  151.     if (re.test(s)) {  
  152.         return true;  
  153.     }  
  154.     else {  
  155.         return false;  
  156.     }  
  157. };  
  158.   
  159. /* 
  160. * 获取控件的值 
  161. * @param controlID 控件ID 
  162. * @param controltype 类型 如text radio 
  163. * @return 
  164. */  
  165. jQuery.mGetValue = function (controlID, controltype) {  
  166.     var objValue = "";  
  167.     switch (controltype) {  
  168.         case 'text'//文本输入框  
  169.             objValue = $.trim($("#" + controlID + "").attr("value")); //取值去左右空格  
  170.             break;  
  171.         case 'radio'//单选框  
  172.             objValue = $("input[name='" + controlID + "']:checked").attr("value");  
  173.             break;  
  174.         case 'select'//下拉列表  
  175.             objValue = $("#" + controlID + "").attr("value");  
  176.             break;  
  177.         case 'checkbox'//多选框  
  178.             $("input[name='" + controlID + "']:checked").each(function () {  
  179.                 objValue += $(this).val() + ",";  
  180.             });  
  181.             break;  
  182.         default:  
  183.             break;  
  184.     }  
  185.     return objValue;  
  186. };  
  187.   
  188. /* 
  189. * 设置控件的值 
  190. * @param controlID 控件ID 
  191. * @param controltype 类型 如text radio 
  192. * @param controlvalue 绑定值 
  193. * @return 
  194. */  
  195. jQuery.mSetValue = function (controlID, controltype, controlvalue) {  
  196.     switch (controltype) {  
  197.         case 'text'//文本输入框    
  198.             //$("#txtUserID").attr("value", '这是绑定内容'); //填充内容    
  199.             //$("input[name='radio1'][value='上海']").attr("checked", true); //单选组radio:设置value='上海'的项目为当前选中项    
  200.             //$("#select1").attr("value", '葡萄牙'); //下拉框select:设置value='中国'的项目为当前选中项    
  201.             //$("input[name='checkbox1'][value='黑色'],[value='蓝色']").attr("checked", true); //多选框:设置多个值为当前选中项    
  202.             $("#" + controlID + "").attr("value", controlvalue); //填充内容    
  203.             break;  
  204.         case 'radio'//单选框    
  205.             $("input[name='" + controlID + "'][value='" + controlvalue + "']").attr("checked"true);  
  206.             break;  
  207.         case 'select'//下拉列表    
  208.             $("#" + controlID + "").attr("value", controlvalue);  
  209.             break;  
  210.         case 'checkbox'//多选框    
  211.             $("input[name='" + controlID + "'][value='" + controlvalue + "'],[value='" + controlvalue + "']").attr("checked"true); //多选框:设置多个值为当前选中项    
  212.             break;  
  213.         default:  
  214.             break;  
  215.     }  
  216. };  
  217.   
  218. /* 
  219. * 兼容IE火狐等浏览器的自动跳转 
  220. * @param url 跳转网址 
  221. * @return 
  222. */  
  223. jQuery.mAutoNav = function (url) {  
  224.     if ($.browser.msie) {  
  225.         var referLink = document.createElement('a');  
  226.         referLink.href = url;  
  227.         document.body.appendChild(referLink);  
  228.         referLink.click();  
  229.     } else {  
  230.         location.href = url;  
  231.     }  
  232. };  
  233.   
  234. /* 
  235. * Table表格奇偶行设置颜色及移动鼠标行变色 
  236. * @param table 表格ID 
  237. * @return 
  238. */  
  239. jQuery.mTableHover = function (table) {  
  240.     $("#" + table).each(function () {  
  241.         var o = $(this);  
  242.         //设置偶数行和奇数行颜色  
  243.         o.find("tr:even").css("background-color""#EFF3FB");  
  244.         o.find("tr:odd").css("background-color""#FFFFFF");  
  245.         //鼠标移动隔行变色hover用法关键  
  246.         o.find("tr:not(:first)").hover(function () {  
  247.             $(this).attr("bColor", $(this).css("background-color")).css("background-color""#E0E0E0");  
  248.         }, function () {  
  249.             $(this).css("background-color", $(this).attr("bColor"));  
  250.         });  
  251.     });  
  252. };  
  253.   
  254. /* 
  255. * gridview 隔行换色 鼠标滑过变色 多选 
  256. * c#获取选择值 Request.Form.Get("chkItem") 
  257. * @param objgridview ID 
  258. * @return 
  259. */  
  260. jQuery.mGridview = function (objgridview) {  
  261.     var headcolor = { background: '#E0ECFF', color: '#333' };  
  262.     var normalcolor = { background: '#f7f6f3' };  
  263.     var altercolor = { background: '#EDF1F8' };  
  264.     var hovercolor = { background: '#89A5D1' };  
  265.     var selectcolor = { background: '#ACBFDF' };  
  266.     var nullcolor = {};  
  267.     //get obj id  
  268.     var gridviewId = "#" + objgridview;  
  269.     //even  
  270.     $(gridviewId + ">tbody tr:even").css(normalcolor);  
  271.     //first  
  272.     $(gridviewId + ">tbody tr:first").css(nullcolor).css(headcolor);  
  273.     //odd  
  274.     $(gridviewId + ">tbody tr:odd").css(altercolor);  
  275.     //hover  
  276.     $(gridviewId + ">tbody tr").click(function () {  
  277.         var cb = $(this).find("input:checkbox");  
  278.         var chf = typeof (cb.attr("checked")) == "undefined" ? true : false;  
  279.         cb.attr("checked", chf);  
  280.         var expr1 = gridviewId + ' >tbody >tr >td >input:checkbox:checked';  
  281.         var expr2 = gridviewId + ' >tbody >tr >td >input:checkbox';  
  282.         var selectAll = $(expr1).length == $(expr2).length;  
  283.         $('#chkAll').attr('checked', selectAll);  
  284.     }).hover(function () {  
  285.         $(this).css(hovercolor);  
  286.     }, function () {  
  287.         $(gridviewId + ">tbody tr:even").css(normalcolor);  
  288.         $(gridviewId + ">tbody tr:first").css(nullcolor).css(headcolor);  
  289.         $(gridviewId + ">tbody tr:odd").css(altercolor);  
  290.     });  
  291.   
  292.     //all check  
  293.     $("#chkAll").click(function () {  
  294.         $(gridviewId + '>tbody >tr >td >input:checkbox:visible').attr('checked'this.checked);  
  295.     });  
  296.     //check status  
  297.     $(gridviewId + ' >tbody >tr >td >input:checkbox').click(function () {  
  298.         var cb = $(this);  
  299.         var chf = typeof (cb.attr("checked")) == "undefined" ? true : false;  
  300.         cb.attr("checked", chf);  
  301.         var expr1 = gridviewId + ' >tbody >tr >td >input:checkbox:checked';  
  302.         var expr2 = gridviewId + ' >tbody >tr >td >input:checkbox';  
  303.         var selectAll = $(expr1).length == $(expr2).length;  
  304.         $('#chkAll').attr('checked', selectAll);  
  305.     });  
  306. };  
  307.   
  308. /* 
  309. * 屏幕居中显示处理进度 
  310. * @param info 显示文字 
  311. * @param type 方式 0遮罩 1不遮罩 
  312. * @param typepic 图片 0:load 1:ok 2:error 
  313. * @return 
  314. */  
  315. jQuery.mMaskLoad = function (info, type, typepic) {  
  316.     var pic = "";  
  317.     switch (typepic) {  
  318.         case 0: // loading  
  319.             pic = "./Images/loading.gif";  
  320.             break;  
  321.         case 1: // ok  
  322.             pic = "./Images/right.png";  
  323.             break;  
  324.         case 2: // error  
  325.             pic = "./Images/error.png";  
  326.             break;  
  327.         default//其他任何值时  
  328.             pic = "./Images/loading.gif";  
  329.             break;  
  330.     }  
  331.     if (type == 0) {  
  332.         $("<div class=\"datagrid-mask\"></div>").css(  
  333.         {  
  334.             display: "block",  
  335.             width: "100%",  
  336.             position: "absolute",  
  337.             left: "0",  
  338.             top: "0",  
  339.             opacity: "0.3",  
  340.             height: "100%",  
  341.             filter: "alpha(opacity=30)",  
  342.             background: "#ccc"  
  343.         }).appendTo("body");  
  344.     };  
  345.     $("<div class=\"datagrid-mask-msg\"></div>").css(  
  346.         {  
  347.             position: "absolute",  
  348.             top: "50%",  
  349.             padding: "12px 5px 10px 30px",  
  350.             width: "auto",  
  351.             height: "16px",  
  352.             border: "1px solid #D1D1D1",  
  353.             background: "#ffffff url('" + pic + "') no-repeat scroll 5px center",  
  354.             display: "block",  
  355.             left: ($(document.body).outerWidth(true) - 190) / 2,  
  356.             top: ($(window).height() - 45) / 2  
  357.         }).html(info).appendTo("body");  
  358. };  
  359.   
  360. /* 
  361. * 屏幕居中隐藏处理进度 
  362. * @return 
  363. */  
  364. jQuery.mMaskLoadClose = function () {  
  365.     $(".datagrid-mask").remove();  
  366.     $(".datagrid-mask-msg").remove();  
  367. };  
  368.   
  369. /* 
  370. * 控件后创建SPAN作为TIP提示 
  371. * @param o 用this 
  372. * @param tip 提示文字 
  373. * @param typepic 图片 0:load 1:ok 2:error 
  374. * @return 
  375. */  
  376. jQuery.mTip = function (o, tip, typepic) {  
  377.     var pic = "";  
  378.     switch (typepic) {  
  379.         case 0: // loading  
  380.             pic = "./Images/loading.gif";  
  381.             break;  
  382.         case 1: // ok  
  383.             pic = "./Images/right.png";  
  384.             break;  
  385.         case 2: // error  
  386.             pic = "./Images/error.png";  
  387.             break;  
  388.         default//其他任何值时  
  389.             pic = "./Images/loading.gif";  
  390.             break;  
  391.     }  
  392.     var eTip = document.createElement("span");  
  393.     var objid = $(o).attr("id") + "_tipDiv";  
  394.     var value = $(o).val();  
  395.     //绝对路径    
  396.     var x = $(o).offset().top;  
  397.     var y = $(o).offset().left;  
  398.     var w = $(o).width();  
  399.     var h = $(o).height();  
  400.     eTip.setAttribute("id", objid);  
  401.     try {  
  402.         document.body.appendChild(eTip);  
  403.     } catch (e) { }  
  404.     $("#" + objid).hide();  
  405.     $("#" + objid).css({  
  406.         top: x,  
  407.         left: y + w + 10,  
  408.         height: h,  
  409.         position: "absolute"  
  410.     });  
  411.     $("#" + objid).html("<img src=\"" + pic + "\" style=\"vertical-align:bottom;margin-right:5px;\">" + tip);  
  412.     $("#" + objid).show();  
  413. };  
  414.   
  415. /** 
  416. * ajax post提交 
  417. * @param url 
  418. * @param param 
  419. * @param datat 为html,json,text 
  420. * @param callback 回调函数 function callBack(data) 
  421. * @return 
  422. */  
  423. jQuery.mJqAjax = function (url, param, datat, callback) {  
  424.     $.ajax({  
  425.         type: "post",  
  426.         url: url,  
  427.         data: param,  
  428.         dataType: datat,  
  429.         success: callback,  
  430.         error: function () { }  
  431.     });  
  432. };  
0 0