![]()
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 }