首页 > 技术文章 > 常用JS

zhang9418hn 2013-12-06 17:23 原文

  1 var closeid = 1;
  2 
  3 function ErpAjax(url) {
  4 var xmlhttp;
  5 if (url.indexOf("?") > 0) {
  6 url = url + "&NowDateTimeSign=" + new Date().getTime();
  7 }
  8 else {
  9 url = url + "?NowDateTimeSign=" + new Date().getTime();
 10 }
 11 if (window.ActiveXObject) {
 12 xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
 13 }
 14 else {
 15 xmlhttp = new XMLHttpRequest();
 16 }
 17 
 18 var url1 = url.split('?');
 19 var url2 = url1[1].toString().split('&');
 20 
 21 var furl = url1[0].toString() + "?";
 22 
 23 for (var i = 0; i < url2.length; i++) {
 24 var j = url2[i].indexOf('=');
 25 
 26 if (i == 0) {
 27 furl += url2[i].toString().substring(0, j) + "=" + encodeURIComponent(url2[i].toString().substring(j + 1));
 28 }
 29 else {
 30 furl += "&" + url2[i].toString().substring(0, j) + "=" + encodeURIComponent(url2[i].toString().substring(j + 1));
 31 }
 32 }
 33 //encodeURIComponent
 34 xmlhttp.open("POST", furl, false);
 35 xmlhttp.send();
 36 return xmlhttp.responseText;
 37 
 38 }
 39 //直接执行存储过程,无确认执行提示
 40 function Runproc(procname) {
 41 
 42 if (procname.length > 0) {
 43 var returnmsg = ErpAjax("/RunProcedure.aspx?procname=" + procname);
 44 if (returnmsg.toString() == "1") {
 45 alert("执行成功!");
 46 } else {
 47 alert("执行失败!");
 48 }
 49 }
 50 }
 51 
 52 //执行存储过程 有确认执行提示
 53 function Runproc(procname, confirmstring) {
 54 if (confirm(confirmstring)) {
 55 if (procname.length > 0) {
 56 var returnmsg = ErpAjax("/RunProcedure.aspx?procname=" + procname);
 57 
 58 if (returnmsg.toString() == "1") {
 59 alert("执行成功!");
 60 } else {
 61 alert("执行失败!");
 62 }
 63 }
 64 }
 65 }
 66 //执行存储过程返回自定义内容 
 67 function RunprocReturnValue(procname) {
 68 
 69 if (procname.length > 0) {
 70 var returnmsg = ErpAjax("/RunProcedure.aspx?procname=" + procname + "&custom=yes");
 71 if (returnmsg.length > 0) {
 72 return returnmsg;
 73 }
 74 else {
 75 return '操作失败';
 76 }
 77 }
 78 }
 79 function Validator(form) {
 80 var valid = true;
 81 $('' + form + ' input,' + form + ' textarea').each(function (i) {
 82 
 83 var vd = $(this).attr("vd");
 84 if (vd != 'undefined' && vd != undefined) {
 85 
 86 var validText = '';
 87 for (var i = 0; i < vd.length; i++) {
 88 if ($(this).attr('combox') != undefined && $(this).attr('combox') == 'true') {
 89 validText += Validate(vd.substring(i, i + 1), $(this).combobox('getText'));
 90 }
 91 else {
 92 
 93 validText += Validate(vd.substring(i, i + 1), $(this).val());
 94 
 95 }
 96 }
 97 if (validText != "") {
 98 $(this).addClass("error");
 99 if ($(this).attr('combox') != undefined && $(this).attr('combox') == 'true') {
100 $(this).combobox('setText', validText)
101 }
102 else if ($(this).attr('pwd') != undefined && $(this).attr('pwd') == 'pwd') {
103 $(this).val('')
104 }
105 else {
106 $(this).val(validText);
107 }
108 valid = false;
109 TextOnFocus(); //添加验证不通过时,用户操作控制
110 }
111 }
112 });
113 return valid;
114 }
115 
116 function TextOnFocus() {
117 $("input,textarea").bind("focus", function () {
118 if ($(this).hasClass("error")) {
119 $(this).removeClass("error");
120 if ($(this).attr('combox') == 'true') {
121 $(this).combobox('setText', '');
122 }
123 else {
124 $(this).val("");
125 }
126 }
127 });
128 }
129 function ClearValidator(form) {
130 $('' + form + ' input,' + form + ' textarea').each(function (i) {
131 if ($(this).hasClass("error")) {
132 $(this).removeClass("error");
133 }
134 
135 });
136 
137 }
138 function RemoveClass(form) {
139 $('' + form + ' input[type=text],' + form + ' textarea,' + form + ' select').each(function (i) {
140 if ($(this).hasClass("easyui-combox")) {
141 $(this).removeClass("error");
142 }
143 
144 });
145 
146 }
147 function Validate(type, text) {
148 switch (type) {
149 case "N":
150 if (IsInt(text))
151 return "";
152 else
153 return "请输入整型.";
154 case "T":
155 if (IsDate(text))
156 return "";
157 else
158 return "请输入正确的日期格式.";
159 case "F":
160 if (IsFloat(text))
161 return "";
162 else
163 return "请输入浮点型.";
164 case "K":
165 if (IsNotEmpty(text))
166 return "";
167 else
168 return "不能为空.";
169 case "U":
170 if (isDigit(text)) {
171 return "用户名不能全是数字";
172 }
173 else if (!isRegisterUserName(text)) {
174 return "用户名长度至少5位最多10位";
175 }
176 else
177 return "";
178 case "P":
179 if (isDigit(text)) {
180 return "密码不能全是数字";
181 }
182 else if (!isPasswd(text)) {
183 return "只能输入6-20个字母、数字、下划线";
184 }
185 else
186 return "";
187 default:
188 return "";
189 break;
190 }
191 }
192 
193  
194 
195 //非空验证
196 function IsNotEmpty(str) {
197 if (str.replace(/(^[\s]*)|([\s]*$)/g, "") == "" || str.replace(/(^[\s]*)|([\s]*$)/g, "") == "不能为空.")
198 return false;
199 else
200 return true;
201 }
202 //整型验证
203 function IsInt(str) {
204 if (str == "")
205 return true;
206 if (/^(\-?)(\d+)$/.test(str))
207 return true;
208 else
209 return false;
210 }
211 //浮点型验证
212 function IsFloat(str) {
213 if (str == "")
214 return true;
215 if (str.indexOf(".") == -1) {
216 return IsInt(str);
217 } else {
218 if (/^(\-?)(\d+)(.{1})(\d+)$/g.test(str))
219 return true;
220 else
221 return false;
222 }
223 }
224 //日期型验证
225 function IsDate(str) {
226 if (str == "")
227 return true;
228 var pattern = /^([1-2]\d{3})[\/|\-](0?[1-9]|10|11|12)[\/|\-]([1-2]?[0-9]|0[1-9]|30|31)$/ig;
229 if (!pattern.test(str))
230 return false;
231 else
232 return true;
233 }
234 //时间型验证
235 function IsTime(str) {
236 if (str == "")
237 return true;
238 var pattern = /^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/;
239 if (!pattern.test(str))
240 return false;
241 else
242 return true;
243 }
244 //邮件型验证
245 function IsEmail(str) {
246 if (str == "")
247 return true;
248 if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1
249 || str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length - 1 || str.lastIndexOf(".") == str.length - 1)
250 return false;
251 else
252 return true;
253 }
254 
255 //校验是否全由数字组成
256 function isDigit(s) {
257 var patrn = /^[0-9]{1,20}$/;
258 if (!patrn.exec(s)) return false
259 return true
260 }
261 //校验登录名:只能输入5-10个以字母开头、可带数字、“_”、“.”的字串
262 function isRegisterUserName(s) {
263 var patrn = /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,9}$/;
264 if (!patrn.exec(s)) return false
265 return true
266 }
267 //校验密码:只能输入6-20个字母、数字、下划线 
268 function isPasswd(s) {
269 var patrn = /^(\w){6,20}$/;
270 if (!patrn.exec(s)) return false
271 return true
272 }
273 // serializeJson = function () {
274 // var serializeObj = {};
275 // var array = $('#ProductAddForm').serializeArray();
276 // var str = $('#ProductAddForm').serialize();
277 // $(array).each(function () {
278 // if (serializeObj[this.name]) {
279 // if ($.isArray(serializeObj[this.name])) {
280 // serializeObj[this.name].push(this.value);
281 // } else {
282 // serializeObj[this.name] = [serializeObj[this.name], this.value];
283 // }
284 // } else {
285 // serializeObj[this.name] = this.value;
286 // }
287 // });
288 // return serializeObj;
289 // };
290 //表单封装
291 serializeObject = function (form) {
292 var o = {};
293 $.each(form.serializeArray(), function (index) {
294 if (this['value'] != undefined && this['value'].length > 0) {// 如果表单项的值非空,才进行序列化操作
295 if (o[this['name']]) {
296 o[this['name']] = o[this['name']] + "," + this['value'];
297 } else {
298 o[this['name']] = this['value'];
299 }
300 }
301 });
302 return o;
303 };
304 var values = [];
305 //btn_add 新增 
306 //btn_delete 删除
307 //btn_edit 编辑 
308 //btn_editlist 列表编辑 
309 //btn_detail 查看明细
310 //btn_finanace 报价单财务编辑
311 //btn_sa 报价单 上数完成按钮
312 //btn_sa_control 报价单 控制上数完成按钮 如果选择了此权限 上数完成可以修改产品信息.订单信息、单不能操作财务信息、已发工资后 任何人不能编辑
313 //btn_wage 财务法工资确认
314 //btn_wagecancle 取消发工资
315 //btn_CancelRow 取消行编辑
316 //保存行 btn_SaveRows
317 function SetRule(pagesid) {
318 values = [];
319 //$('.btn_finanace').css('display','block')
320 var arr = ['btn_add', 'btn_delete', 'btn_edit', 'btn_editlist', 'btn_detail', 'btn_finanace', 'btn_sa_control', 'btn_sa', 'btn_wage', 'btn_wagecancle', 'btn_CancelRow', 'btn_SaveRows']
321 $.ajax({
322 type: "POST",
323 async: false, // 设置同步方式
324 cache: false,
325 dataType: "html",
326 url: "/ajax/GetTreeJson.ashx",
327 data: { PagesID: pagesid },
328 success: function (result) {
329 
330 if (result != '') {
331 var str = result;
332 
333 var t = str.split(',');
334 for (var i = 0; i < t.length; i++) {
335 values.push(t[i]); /* 避免他将ID当成数字 */
336 }
337 for (var j = 0; j < arr.length; j++) {
338 
339 for (var i = 0; i < values.length; i++) {
340 if (values[i] == arr[j]) {
341 
342 // $(' .' + arr[i] + '').show();
343 //$(this).css("visibility", "visible");
344 $('.' + values[i]).each(function (i) {
345 
346 // $(this).css("display", "block");
347 $(this).show();
348 
349 });
350 continue;
351 }
352 }
353 }
354 }
355 
356 }
357 });
358 }
359 //判断双击事件
360 function IsDoubleClick(str) {
361 
362 var flag = false;
363 for (var j = 0; j < values.length; j++) {
364 if (values[j] == 'doubleclick') {
365 
366 flag = true;
367 
368 }
369 
370 }
371 return flag;
372 }
373 //判断右键菜单事件
374 function IsContextMenu(str) {
375 
376 var flag = false;
377 for (var j = 0; j < values.length; j++) {
378 if (values[j] == 'menu') {
379 
380 flag = true;
381 
382 }
383 
384 }
385 return flag;
386 }
387 //控制报价单是否可以编辑
388 function IsUpControl() {
389 
390 var flag = false;
391 for (var j = 0; j < values.length; j++) {
392 if (values[j] == 'btn_sa_control') {
393 
394 flag = true;
395 
396 }
397 
398 }
399 return flag;
400 }
401 
402 function CloseCurrentWindow(grid, form, dialog, id) {
403 
404 if ($('' + form + ' input[name=' + id + ']').val() != "") {
405 parent.$.messager.confirm('询问', '数据尚未保存,确定要关闭吗?', function (r) {
406 if (r) {
407 $(dialog).dialog('close');
408 $(grid).datagrid('reload');
409 
410 }
411 });
412 
413 }
414 else {
415 $(dialog).dialog('close')
416 }
417 }
418 
419 function StringFilter(p_str) {
420 if (p_str != null) {
421 
422 
423 p_str = p_str.replace(/'/ig, "\'+char(39)+N\'");
424 p_str = p_str.replace(/-/ig, "\'+char(45)+N\'");
425 p_str = p_str.replace(/,/ig, "\'+char(44)+N\'");
426 p_str = p_str.replace(/&/ig, "\'+char(38)+N\'");
427 p_str = p_str.replace(/#/ig, "\'+char(35)+N\'");
428 p_str = p_str.replace(/\×/ig, "<><><<><>>>>");
429 p_str = p_str.replace(/\*/ig, "×");
430 p_str = p_str.replace(/\\/ig, "\'+char(92)+N\'");
431 p_str = p_str.replace(/\?/ig, "\'+char(63)+N\'");
432 return p_str;
433 }
434 else {
435 return "";
436 }
437 }
438 
439 //type 0 用于数据保存后关闭 直接return true,1判断表单是否由数据 由数据提示用户
440 function OnDialogClose(form, hid_id, type) {
441 var returnStr = "";
442 var closeflag = false;
443 
444 var hid_value = "";
445 if (document.getElementById(hid_id)) {
446 
447 hid_value = $('#' + hid_id).val();
448 }
449 
450 if (form == "") {
451 closeid = 0;
452 closeflag = true;
453 }
454 else {
455 if (type != 0) {
456 $('' + form + ' input[type=text],' + form + ' textarea').each(function (i) {
457 
458 
459 var strclass = $(this).attr('class');
460 if (strclass == undefined || strclass.indexOf('combo') == -1) {
461 returnStr += $(this).val();
462 }
463 
464 
465 });
466 //新增 表单有数据 不关闭 hid_value=="" 并且returnStr!="" 
467 if (returnStr != "" && hid_value == "") {
468 closeflag = false;
469 }
470 //新增 表单无数据 关闭 hid_value=="" 并且returnStr!="" 
471 else if (returnStr == "" && hid_value == "") {
472 closeflag = true;
473 }
474 //编辑 hid_value!="" 不管表单有没有数据 直接关闭
475 else {
476 closeflag = true;
477 }
478 
479 if (closeflag == false) {
480 if (confirm('数据尚未保存,您确定要关闭吗?')) {
481 closeflag = true;
482 }
483 }
484 else {
485 closeflag = true;
486 }
487 
488 
489 closeid = 1;
490 return closeflag;
491 }
492 else {
493 closeid = 0;
494 return true;
495 }
496 }
497 
498 
499 
500 
501 }
502 function SetDate(days) {
503 var now = new Date();
504 now.setDate((now.getDate() ) + days);
505 var year = now.getFullYear();
506 var month = now.getMonth() + 1;
507 var day = now.getDate();
508 if (month < 10) {
509 month = "0" + month;
510 }
511 if (day < 10) {
512 day = "0" + day;
513 }
514 return year+'-'+month+'-'+day
515 
516 
517 
518 var url=window.location.search;
519             var Request = new Object();
520             if(url.indexOf("?")!=-1){
521                  var str = url.substr(1);
522                  strs = str.split("&");
523                  for(var i=0;i<strs.length;i++){
524                       Request[strs[i].split("=")[0]]=strs[i].split("=")[1];
525                  }
526             }
527 
528 //xxx.htm?a=1
529             if(Request['a']!=undefined){
530                 alert(Request['a']);
531             }
532 
533 }

 

推荐阅读