1 /************************** 2 **********************************************************************************************/ 3 4 /************************************************************** 5 获取文本框的值并转换成Float类型返回 6 **************************************************************/ 7 function $Float(el) { 8 return Util.parseFloat($F(el)); 9 } 10 11 /************************************************************** 12 获取文本框的值并转换成Integer类型返回 13 **************************************************************/ 14 function $Integer(el) { 15 return Util.parseInteger($F(el)); 16 } 17 18 /************************************************************** 19 设置文本框的值 20 **************************************************************/ 21 function $Set(el, value) { 22 $(el).value = value; 23 } 24 25 /************************************************************** 26 工具类Util 27 **************************************************************/ 28 var Util = {}; 29 30 /************************************************************** 31 格式化字符串,使用方式类似java中的String.format()方法 32 **************************************************************/ 33 Util.format = function(format) { 34 var args = []; 35 for(var i = 1; i < arguments.length; i++) { 36 args.push(arguments[i]); 37 } 38 39 return format.replace(/{(d+)}/g, function(m, i) { 40 return args[i]; 41 }); 42 } 43 44 /************************************************************** 45 判断字符串是否为空 46 **************************************************************/ 47 Util.strIsEmpty = function(str) { 48 return str == null || !str || typeof str == undefined || str == ''; 49 } 50 51 /************************************************************** 52 将传入值转换成整数 53 **************************************************************/ 54 Util.parseInteger = function(v) { 55 if(typeof v == 'number') { 56 return v; 57 } else if(typeof v == 'string') { 58 var ret = parseInt(v); 59 60 if(isNaN(ret) || !isFinite(ret)) { 61 return 0; 62 } 63 64 return ret; 65 } else { 66 return 0; 67 } 68 } 69 70 /************************************************************** 71 将传入值转换成小数 72 **************************************************************/ 73 Util.parseFloat = function(v) { 74 if(typeof v == 'number') { 75 return v; 76 } else if(typeof v == 'string') { 77 var ret = parseFloat(v); 78 if(isNaN(ret) || !isFinite(ret)) { 79 return 0; 80 } 81 82 return ret; 83 } else { 84 return 0; 85 } 86 } 87 88 /************************************************************** 89 将传入值转换成小数,传入值可以是以逗号(,)分隔的数字,此方法将会过滤掉(,) 90 **************************************************************/ 91 Util.parseDotFloat = function(v) { 92 if(typeof v == 'number') { 93 return v; 94 } else if(typeof v == 'string') { 95 v = v.replace(/[^d|.]/g, ''); 96 v = parseFloat(v); 97 98 if(isNan(v) || !isFinite(v)) { 99 return 0 100 } 101 return ret; 102 } else { 103 return 0; 104 } 105 } 106 107 /************************************************************** 108 添加事件 109 **************************************************************/ 110 Util.addEventListener = function(element, event, handler, param) { 111 param.scope = param.scope || element; 112 113 if(typeof element == 'string') { 114 element = $(element); 115 } 116 117 var h = function() { 118 handler.call(param.scope, param); 119 } 120 121 if(element.attachEvent) { 122 element.attachEvent('on' + event, h); 123 124 } else if(element.addEventListener) { 125 element.addEventListener(event, h, false); 126 127 } else { 128 element['on' + event] = h; 129 } 130 } 131 132 /************************************************************** 133 检查标签值是否为空,当为空时提示 134 135 @param el {Element, string}检查的标签 136 @param msg {string}提示消息,当检查失败时提示 137 @return true检查通过,标签的值不空,false标签值为空 138 **************************************************************/ 139 Util.checkIsNotEmpty = function(el, msg) { 140 if(typeof el == 'string') { 141 el = $(el); 142 } 143 144 if(Util.strIsEmpty(el.value)) { 145 alert(msg); 146 if(!el.disabled) { 147 el.focus(); 148 el.select(); 149 } 150 return false; 151 } 152 return true; 153 } 154 155 /************************************************************** 156 字符串传换成date类型 157 158 @str {string}字符串格式表示的日期,格式为:yyyy-mm-dd 159 @return {Date}由str转换得到的Date对象 160 **************************************************************/ 161 Util.str2date = function(str) { 162 var re = /^(d{4})S(d{1,2})S(d{1,2})$/; 163 var dt; 164 if(re.test(str)) { 165 dt = new Date(RegExp.$1, RegExp.$2 - 1, RegExp.$3); 166 } 167 return dt; 168 } 169 170 /************************************************************** 171 计算2个日期之间的天数 172 173 @day1 {Date}起始日期 174 @day2 {Date}结束日期 175 @return day2 - day1的天数差 176 **************************************************************/ 177 Util.dayMinus = function(day1, day2) { 178 var days = Math.floor((day2 - day1) / (1000 * 60 * 60 * 24)); 179 return days; 180 } 181 182 /************************************************************** 183 设置组合列表框选择项 184 185 @param combo 组合列表框 186 @param value 选择值 187 @param defaultIdx 默认选中项的序号 188 **************************************************************/ 189 Util.setComboSelected = function(combo, value, defaultIdx) { 190 if(typeof combo == 'string') { 191 combo = $(combo); 192 } 193 194 var idx = defaultIdx; 195 if(typeof defaultIdx == 'undefined') { 196 idx = -1; 197 } 198 199 for(var i = 0, len = combo.options.length; i < len; ++i) { 200 var v = combo.options[i].value; 201 if(v == value) { 202 idx = i; 203 break; 204 } 205 } 206 207 combo.selectedIndex = idx; 208 } 209 210 /************************************************************** 211 字符串转换成日期 212 @param str {String}字符串格式的日期 213 @return {Date}由字符串转换成的日期 214 **************************************************************/ 215 Util.str2date = function(str) { 216 var re = /^(d{4})S(d{1,2})S(d{1,2})$/; 217 var dt; 218 if(re.test(str)) { 219 dt = new Date(RegExp.$1, RegExp.$2 - 1, RegExp.$3); 220 } 221 return dt; 222 } 223 224 /************************************************************** 225 计算2个日期间的天数差 226 227 @param day1 {Date}开始日期 228 @param day2 {Date}结束日期 229 @return 天数差 230 **************************************************************/ 231 Util.dayInterval = function(day1, day2) { 232 var days = Math.floor((day2 - day1) / (1000 * 60 * 60 * 24)); 233 return days; 234 }