常用JS
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 }