pub.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989
  1. /************************************
  2. purpose : 禁止右键
  3. ************************************/
  4. //document.oncontextmenu=noRightMenu
  5. function noRightMenu(){
  6. window.event.returnValue=false
  7. }
  8. /************************************
  9. Method : trim()
  10. purpose : 先将全角空格替换为半角空格,然后除去字符串头尾的空格。
  11. parameters :
  12. return value : 除去头尾空格的字符串
  13. 用法:
  14. var tmpStr = "abc ";
  15. tmpStr = tmpStr.trim();
  16. ************************************/
  17. String.prototype.trim = function()
  18. {
  19. return this.replace(/ /g, " ").replace(/(^\s*)|(\s*$)/g, "");
  20. }
  21. /************************************
  22. Method : fucCheckNUM(NUM)
  23. purpose : 检查字符串中是否有非数字字符。
  24. parameters : 待查字符串
  25. return value : 0-有非数字字符;1-全是数字
  26. ************************************/
  27. function fucCheckNUM(NUM) {
  28. var re=/^(-|\+)?\d+(\.\d+)?$/;
  29. if(!re.test(NUM)){return 0}else{return 1;}
  30. }
  31. /************************************
  32. Method : operate(url,target)
  33. purpose : 打开url指定的页面。
  34. parameters : url-待打开的页面地址;target-显示方式
  35. return value :
  36. ************************************/
  37. function operate(url,target)
  38. {
  39. window.open(url,target);
  40. }
  41. /************************************
  42. Method : trim(strInput)
  43. purpose : 除去字符串头尾的空格。
  44. parameters :
  45. return value : 除去头尾空格的字符串
  46. ************************************/
  47. function trim(strInput)
  48. {
  49. var iLoop=0;
  50. var iLoop2=-1;
  51. var strChr;
  52. //if(strValue == null)
  53. if((strInput == null)||(strInput == "<NULL>"))
  54. return "";
  55. if(strInput)
  56. {
  57. for(iLoop=0;iLoop<strInput.length-1;iLoop++)
  58. {
  59. strChr=strInput.charAt(iLoop);
  60. if(strChr!=' ')
  61. break;
  62. }
  63. for(iLoop2=strInput.length-1;iLoop2>=0;iLoop2--)
  64. {
  65. strChr=strInput.charAt(iLoop2);
  66. if(strChr!=' ')
  67. break;
  68. }
  69. }
  70. if(iLoop<=iLoop2)
  71. {
  72. return strInput.substring(iLoop,iLoop2+1);
  73. }
  74. else
  75. {
  76. return "";
  77. }
  78. }
  79. /************************************
  80. Method : checkChar()
  81. purpose : 禁止非法字符的输入,可扩展,后面带非法字符数组。
  82. parameters :
  83. return value :
  84. ************************************/
  85. function checkChar()
  86. {
  87. var iKey = event.keyCode;
  88. if (iKey==222) {return false;} //非法字符"'"
  89. }
  90. /************************************
  91. Method : checkNum()
  92. purpose : 禁止非数字的输入。
  93. parameters :
  94. return value :
  95. ************************************/
  96. function checkNum()
  97. {
  98. var iKey = event.keyCode;
  99. if ((iKey==8) ||(iKey==46) ||(iKey==190)) {
  100. return true;} //--delete or space keydown
  101. if (event.keyCode==13)
  102. {
  103. event.keyCode = 9;
  104. return true;
  105. }
  106. if ((iKey<48) || ((iKey>57)&&(iKey<96)) || (iKey>105)) {return false;} //非数字
  107. }
  108. /************************************
  109. Method : pasteNum()
  110. purpose : 禁止非数字的拷贝。
  111. parameters :
  112. return value :
  113. ************************************/
  114. function pasteNum(){
  115. clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))
  116. }
  117. /************************************
  118. Method : text_trim( str, methods )
  119. purpose : 有条件的去除空格。
  120. parameters : str-待处理字符串
  121. methods-处理字符串的方式
  122. "LEFT"-除去字符串头部空格
  123. "RIGHT"-除去字符串尾部空格
  124. "BOTH"-除去字符串头尾空格
  125. return value : 安条件除去了空格的字符串
  126. ************************************/
  127. function text_trim( str, methods ){
  128. var s;
  129. var len = str.length;
  130. if ( str == "" ) return str;
  131. if ( methods.toLowerCase() == "left" || methods.toLowerCase() == "both" ){
  132. for ( var j = 0; j < str.length; j++ ) {
  133. s = str.substring(j, j+1);
  134. if ( s == " " || s == " "){
  135. str = str.substr( j+1, str.length-1 );
  136. j--;
  137. }else
  138. break;
  139. }
  140. }
  141. if ( methods.toLowerCase() == "right" || methods.toLowerCase() == "both" ){
  142. for ( var j = str.length; j > 0; j-- ) {
  143. s = str.substring(j-1, j);
  144. if ( s == " " || s == " "){
  145. str = str.substr( 0, j-1 );
  146. }else break;
  147. }
  148. }
  149. return str;
  150. }
  151. /************************************
  152. Method : len()
  153. purpose : 计算中英文混合字符串的长度。
  154. parameters :
  155. return value : 字符串长度,一个汉字是两个字符
  156. 用法:
  157. var tmpStr = "abc字符串";
  158. alert(tmpStr.len());
  159. ************************************/
  160. String.prototype.len=function()
  161. {
  162. return this.replace(/[^\x00-\xff]/g,"**").length;
  163. }
  164. /************************************
  165. Method : checkInput(formObject)
  166. purpose : 对字符,数字,日期输入进行检查。
  167. parameters : form表单对象
  168. return value : true or false 验证成功返回true
  169. 用法:
  170. if (checkInput(form)){
  171. form.submit();
  172. }
  173. ************************************/
  174. function checkInput(formObject)
  175. {
  176. try
  177. {
  178. var l_childs = formObject.elements;
  179. var l_child;//input 对象
  180. var l_isNull;//是否可以为空
  181. var l_label;//出错后显示的名字
  182. var l_kind;//类型date,number,email
  183. var l_name;
  184. var l_value;
  185. var l_Decima;
  186. var l_FieldType;
  187. var l_init;
  188. var l_length;
  189. var l_type;
  190. var permitedENchars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890-_";
  191. for(var i=0;i<l_childs.length;i++)
  192. {
  193. l_child = l_childs[i];
  194. if(l_child.nodeName.toLowerCase() == "input" && l_child.type=="file"&&l_child.kind!=null&&!(l_child.kind.indexOf(".")==-1))
  195. {
  196. isNull = l_child.isnull;
  197. l_label = l_child.label;
  198. l_kind = l_child.kind;
  199. l_value = l_child.value.toLowerCase();
  200. if(isNull != null){ //isnull属性为null时表示不需要验证
  201. if(isNull == "false" && l_value == "")
  202. {
  203. alert(l_label+",必须选择文件");
  204. return false;
  205. }
  206. expand_name = l_value.substring(l_value.lastIndexOf("."));
  207. if(l_kind.indexOf(expand_name)==-1){
  208. alert("文件类型错误");
  209. return false;
  210. }
  211. }
  212. }
  213. if(l_child.nodeName.toLowerCase() == "textarea")
  214. {
  215. var length = l_child.maxlength;
  216. isNull = l_child.isnull;
  217. if(isNull == null)
  218. isNull = "";
  219. var innerText = l_child.innerText;
  220. l_label = l_child.label;
  221. if(l_label == null)
  222. l_label = "";
  223. if(innerText == null)
  224. innerText = "";
  225. if(isNull == "false" && innerText == "")
  226. {
  227. alert("\"" + l_label + "\""+"内容不能为空" + "!");
  228. l_child.focus();
  229. return false;
  230. }
  231. if(length != null)
  232. {
  233. if(innerText.len() > length)
  234. {
  235. alert("\"" + l_label + "\"" +"最多只能输入"+length + "个字符(" + length/2 + "个汉字)!");
  236. l_child.focus();
  237. return false;
  238. }
  239. }
  240. }
  241. if(l_child.nodeName.toLowerCase() == "select")
  242. {
  243. l_kind = l_child.kind;
  244. if(l_kind == null)
  245. l_kind = "";
  246. isNull = l_child.isnull;
  247. if(isNull == null)
  248. isNull = "";
  249. l_label = l_child.label;
  250. if(l_label == null)
  251. l_label = "";
  252. l_value = l_child.value;
  253. if (l_value == null)
  254. l_value = "";
  255. if (l_kind == "list")
  256. {
  257. if(isNull == "false" && l_value == "")
  258. {
  259. alert("\"" + l_label + "\""+"为必选项!");
  260. return false;
  261. }
  262. }
  263. if (l_kind == "emptybox")
  264. {
  265. if(isNull == "false" && l_child.options.length == 0)
  266. {
  267. alert("必须选择\"" + l_label + "\"!");
  268. return false;
  269. }
  270. }
  271. }
  272. if(l_child.nodeName.toLowerCase() == "input" && l_child.type!="file")
  273. {
  274. l_name = l_child.name;
  275. l_isNull = l_child.isnull;
  276. l_label = l_child.label;
  277. l_kind = l_child.kind;
  278. l_value = l_child.value;
  279. l_Decima = l_child.Decima
  280. l_FieldType = l_child.FieldType
  281. l_init = l_child.init;
  282. l_length = l_child.maxLength;
  283. l_type = l_child.type;
  284. if(l_label == null && l_kind == null)
  285. continue;//不检查
  286. if(l_label == null)
  287. label = "";
  288. if (l_kind != "desc")
  289. if (hasDenieSyntax(l_value, l_label)){
  290. l_child.focus();
  291. return false;
  292. }
  293. if(l_kind != "string_en3")
  294. {
  295. if(!prohibitBacklash(l_value))return false;
  296. }
  297. if(l_isNull == "false" && l_value == "")
  298. {
  299. alert("\"" + l_label + "\"" + "不能为空!");
  300. l_child.focus();
  301. return false;
  302. }
  303. if(l_value.length > 0)//检查输入是否都是空格
  304. {
  305. l_value = l_value.trim();
  306. l_child.value = l_value;
  307. if(l_value.length == 0)
  308. {
  309. alert("\"" + l_label + "\"" +"不能全是空格!");
  310. l_child.focus();
  311. return false;
  312. }
  313. }
  314. if(l_length != null && l_value.length > 0)
  315. {
  316. if(l_value.len() > l_length)
  317. {
  318. alert("\"" + l_label + "\"" +"最多只能输入"+l_length + "个字符(" + l_length/2 + "个汉字)!");
  319. l_child.focus();
  320. return false;
  321. }
  322. }
  323. if (l_kind == "number")
  324. {
  325. l_value = l_value.trim();
  326. l_child.value = l_value;
  327. if(fucCheckNUM(l_value) == 0)
  328. {
  329. alert("\"" + l_label + "\"" +"必须是数字!");
  330. l_child.focus();
  331. return false;
  332. }
  333. }
  334. if (l_type != null)
  335. {
  336. if (l_type.toLowerCase() == "password" && l_value.length > 0)
  337. {
  338. l_value = l_value.trim();
  339. l_child.value = l_value;
  340. if(!isAlphanumeric(l_value))
  341. {
  342. alert("\"" + l_label + "\"" +"必须是英文字符或数字!");
  343. l_child.focus();
  344. return false;
  345. }
  346. }
  347. }
  348. if (l_kind == "english" && l_value.length > 0)
  349. {
  350. l_value = l_value.trim();
  351. l_child.value = l_value;
  352. if(!isEnglish(l_value))
  353. {
  354. alert("\"" + l_label + "\"" +"必须是英文字母!");
  355. l_child.focus();
  356. return false;
  357. }
  358. }
  359. if(l_kind == "uppercase")
  360. {
  361. for (var loop=0; loop<l_value.length; loop++)
  362. {
  363. var Char = l_value.charAt(loop);
  364. if ((Char < "A" || Char > "Z")){
  365. alert("\"" + l_label + "\"" +"必须为大写英文字母!");
  366. l_child.focus();
  367. return false;
  368. }
  369. }
  370. }
  371. //使用模式匹配,检查日期输入
  372. if(l_value != null && l_value.length > 0)
  373. {
  374. if(l_kind == "string_en")
  375. {
  376. for(loop=0;loop<l_value.length;loop++)
  377. {
  378. var char = l_value.charAt(loop);
  379. if(permitedENchars.indexOf(""+char) < 0)
  380. {
  381. alert(l_label+",内容只能是字母或数字");
  382. l_child.focus();
  383. return false;
  384. }
  385. }
  386. }
  387. else if(l_kind == "string_en1")//可以有空格
  388. {
  389. for(var loop=0;loop<l_value.length;loop++)
  390. {
  391. var char = l_value.charAt(loop);
  392. if((permitedENchars+" ").indexOf(""+char) < 0)
  393. {
  394. alert(l_label+",内容必须在["+permitedENchars+"]内");
  395. l_child.focus();
  396. return false;
  397. }
  398. }
  399. }
  400. else if(l_kind == "string_en2")//不允许有\和空格
  401. {
  402. if(l_value.indexOf("\\") >= 0)
  403. {
  404. alert(l_label+",内容不能有\\字符");
  405. l_child.focus();
  406. return false;
  407. }
  408. for(var i=0;i<l_value.length;i++)
  409. {
  410. var char = l_value.charAt(i);
  411. if((permitedENchars).indexOf(""+char) < 0)
  412. {
  413. alert(l_label+",内容必须在["+permitedENchars+"]内");
  414. l_child.focus();
  415. return false;
  416. }
  417. }
  418. }
  419. else if(l_kind == "string_en3")//限制反斜杠
  420. {
  421. }
  422. else if(l_kind == "string_xml")//限制特殊字符
  423. {
  424. var ret = xmlInputCheck(l_value);
  425. if(ret == false)
  426. {
  427. l_child.focus();
  428. return false;
  429. }
  430. }
  431. else if(l_kind == "date")
  432. {
  433. var reg = /^([1-9](\d{3}))-([0-1]\d)-([0-3]\d)$/ig;
  434. var r = l_value.match(reg);
  435. if(r == null)
  436. {
  437. alert("\"" + l_label + "\"" +"必须是yyyy-mm-dd格式,yyyy,mm,dd必须由数字组成!\n例如:2004-01-01");
  438. l_child.focus();
  439. return false;
  440. }
  441. else
  442. {
  443. var l_month = RegExp.$3;
  444. if(l_month == "00")
  445. {
  446. alert("\"" + l_label + "\"" +"月份不能是00!");
  447. l_child.focus();
  448. return false;
  449. }
  450. else if(l_month > 12)
  451. {
  452. alert("\"" + l_label + "\"" +"月份不能大于12!");
  453. return false;
  454. }
  455. else
  456. {
  457. l_month = eval(l_month)-1;
  458. }
  459. var l_date = new Date(RegExp.$1,l_month,RegExp.$4);
  460. if(l_date.getDate() != RegExp.$4)
  461. {
  462. alert("\"" + l_label + "\"" +"异常,日期\"" + l_value + "\"不存在,请检查。");
  463. l_child.focus();
  464. return false;
  465. }
  466. if(l_date.getMonth() != l_month)
  467. {
  468. alert("\"" + l_label + "\"" +"月份异常,格式必须是:yyyy-mm-dd!");
  469. l_child.focus();
  470. return false;
  471. }
  472. }
  473. }
  474. else if(l_kind == "int")
  475. {
  476. var reg = /^(\d+)$/;
  477. var r = l_value.match(reg);
  478. var reg1 = /^-(\d+)$/;
  479. var r1 = l_value.match(reg1);
  480. if(r == null && r1 == null)
  481. {
  482. alert("\"" + l_label + "\"" +"必须是整数!");
  483. l_child.focus();
  484. return false;
  485. }
  486. }
  487. else if(l_kind == "float")
  488. {
  489. var reg = /^(\d+)\.(\d+)$/;
  490. var reg1 = /^(\d+)$/;
  491. var r = l_value.match(reg);
  492. var r1 = l_value.match(reg1);
  493. if(r == null && r1 == null)
  494. {
  495. alert("\"" + l_label + "\"" +"必须是数字!");
  496. l_child.focus();
  497. return false;
  498. }
  499. else
  500. {
  501. var l_maxLength = l_child.maxLength;//浮点数长度
  502. var l_inputDecimalLength = (""+RegExp.$2).length;//用户输入的小数长度
  503. var l_decimalLength = l_child.decimalLength;//规定输入的小数最长长度
  504. var l_inputIntLength = (""+RegExp.$1).length;//用户输入的整数长度
  505. if(l_inputDecimalLength != null && l_decimalLength != null && l_maxLength != null)
  506. {
  507. if(l_inputDecimalLength > l_decimalLength)
  508. {
  509. alert("\"" + l_label + "\"" +"小数位数不能大于"+l_decimalLength+"!");
  510. l_child.focus();
  511. return false;
  512. }
  513. var l_intLength = l_maxLength-l_decimalLength-1;//规定输入的整数最长长度
  514. if(l_inputIntLength > l_intLength)
  515. {
  516. alert("\"" + l_label + "\"" +"整数位数不能大于"+l_intLength+"!");
  517. l_child.focus();
  518. return false;
  519. }
  520. }
  521. }
  522. }
  523. else if(l_kind == "currency")
  524. {
  525. var reg = /^(\d+)\.(\d+)$/;
  526. var reg1 = /^(\d+)$/;
  527. var r = l_value.match(reg);
  528. var r1 = l_value.match(reg1);
  529. if(r == null && r1 == null)
  530. {
  531. alert("\"" + l_label + "\"" +"必须是数字!");
  532. l_child.focus();
  533. return false;
  534. }
  535. var t = l_value.trim().replace(/([-+]?[0-9]+\.?[0-9]{0,4})/,"");
  536. if(t.length != 0){
  537. alert("\"" + l_label + "\"" +" 的值必须是一个货币型的数值,\n 整数位最长9位,小数位最长2位!");
  538. return false;
  539. }
  540. }
  541. else if(l_kind == "email")
  542. {
  543. //var reg = /^(\w+)@(\w+)\.(\w+)$/;
  544. var reg = /^(\w+)@(\w+)\.((\w+)(\.{0,1}))*$/;
  545. var r = l_value.match(reg);
  546. if(r == null)
  547. {
  548. alert("\"" + l_label + "\"" +"必须符合电子邮件的规范输入!,如xxx@yyyy.zzz");
  549. l_child.focus();
  550. return false;
  551. }
  552. }
  553. else if(l_kind == "tel")//电话
  554. {
  555. var reg = /^(((\d+)-)*)((\d+)+)$/;
  556. var r = l_value.match(reg);
  557. if(r == null)
  558. {
  559. alert("\"" + l_label + "\"" +"必须符合电话号码的规范输入,如010-11111111-111");
  560. l_child.focus();
  561. return false;
  562. }
  563. }
  564. }
  565. if(l_Decima == "DecimaLength")
  566. {
  567. if(l_child.value!=0 && l_child.value>6)
  568. {
  569. alert("小数位 最大尺寸不能超过6 \n 请重新输入【小数位】");
  570. return false;
  571. }
  572. }
  573. if(l_FieldType == "NUMBER"){
  574. if(l_child.value==0){
  575. alert("请输入【字段长度】!\n \n注意:不能超过13位");
  576. return false;
  577. }else{
  578. if(l_child.value>13){
  579. alert("数值型 字段位数不能超过13位!!\n \n请重新输入【长度】");
  580. return false;
  581. }
  582. }
  583. }else if(l_FieldType == "VARCHAR2"){
  584. if(l_child.value==0){
  585. alert("请输入【字段长度】!\n \n 注意:不能超过255字节");
  586. return false;
  587. }else{
  588. if(l_child.value>254){
  589. alert("文本型 字段不能超过254个字符!!");
  590. return false;
  591. }
  592. }
  593. }
  594. if(l_init == "init"){
  595. if(l_childs.FieldType.value == "NUMBER"){
  596. if(l_childs.FieldLength.value==0){
  597. alert("请输入【字段长度】!\n \n注意:不能超过13位");
  598. return false;
  599. }else{
  600. if(l_childs.FieldLength.value>13){
  601. alert("数值型 字段长度不能超过13位!!\n \n请重新输入【长度】");
  602. return false;
  603. }
  604. }
  605. }else if(l_childs.FieldType.value == "VARCHAR2"){
  606. if(l_childs.FieldLength.value==0){
  607. alert("请输入【字段长度】!\n \n 注意:不能超过255字节");
  608. return false;
  609. }else{
  610. if(l_childs.FieldLength.value>254){
  611. alert("文本型 字段不能超过254个字符!!\n \n 请重新输入【长度】");
  612. return false;
  613. }
  614. }
  615. }
  616. }
  617. }
  618. }
  619. }
  620. catch(ex){alert(ex.description);return false;}
  621. return true;
  622. }
  623. /************************************
  624. Method : validateInputIfHasProhibitedChar(valueString)
  625. purpose : 检查输入是否有敏感字符,如',等。
  626. parameters : 待检查字符串
  627. return value : true or false 不包含敏感字符返回true
  628. ************************************/
  629. function validateInputIfHasProhibitedChar(valueString)
  630. {
  631. if(valueString == null)return true;
  632. if(valueString.indexOf("'") >= 0)
  633. {
  634. alert("输入不能包括英文的字符'");
  635. return false;
  636. }
  637. return true;
  638. }
  639. /************************************
  640. Method : prohibitBacklash(valueString)
  641. purpose : 限制反斜杠。
  642. parameters : 待检查字符串
  643. return value : true or false 不包含反斜杠返回true
  644. ************************************/
  645. function prohibitBacklash(valueString)
  646. {
  647. if(valueString.indexOf("\\") >= 0)
  648. {
  649. alert("输入不能包括英文的字符\\");
  650. return false;
  651. }
  652. return true;
  653. }
  654. /************************************
  655. Method : hasDenieSyntax(s,label)
  656. purpose : 检查非法字符。
  657. parameters : s-待检查字符串
  658. label-检查项名称,出现在提示信息中
  659. return value : true or false 不包含反斜杠返回true
  660. ************************************/
  661. function hasDenieSyntax(s,label){
  662. for(i=0;i<s.length;i++){
  663. var n;
  664. n = s.charAt(i);
  665. if(n=="'" || n=="\"" || n=="<" || n==">" || n=='%'){
  666. alert("\"" + label + "\"" + "中不能含有"+"< > ' \" %"+"等非法字符。");
  667. return true;
  668. }
  669. }
  670. return false;
  671. }
  672. /************************************
  673. Method : isAlphanumeric( checkobj)
  674. purpose : 检查是否全是字母和数字。
  675. parameters : s-待检查字符串
  676. return value : true or false 全是字母和数字返回true
  677. ************************************/
  678. function isAlphanumeric( checkobj)
  679. {
  680. var checkOK = "0123456789-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  681. var checkStr = checkobj;
  682. var allValid = true;
  683. var decPoints = 0;
  684. for (i = 0; i < checkStr.length; i++)
  685. {
  686. ch = checkStr.charAt(i);
  687. for (j = 0; j < checkOK.length; j++)
  688. if (ch == checkOK.charAt(j))
  689. break;
  690. if (j == checkOK.length)
  691. {
  692. allValid = false;
  693. break;
  694. }
  695. }
  696. return (allValid)
  697. }
  698. /************************************
  699. Method : isEnglish( checkobj)
  700. purpose : 检查是否全是英文字母。
  701. parameters : s-待检查字符串
  702. return value : true or false 全是英文字母返回true
  703. ************************************/
  704. function isEnglish( checkobj)
  705. {
  706. var checkOK = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  707. var checkStr = checkobj;
  708. var allValid = true;
  709. var decPoints = 0;
  710. for (i = 0; i < checkStr.length; i++)
  711. {
  712. ch = checkStr.charAt(i);
  713. for (j = 0; j < checkOK.length; j++)
  714. if (ch == checkOK.charAt(j))
  715. break;
  716. if (j == checkOK.length)
  717. {
  718. allValid = false;
  719. break;
  720. }
  721. }
  722. return (allValid)
  723. }
  724. /************************************
  725. Method : openwin(url,windowName,width,height,overFlow)
  726. purpose : 打开一个新的窗口
  727. parameters : pagename – 页面名称
  728. target – 打开窗口位置,为空时打开一个新窗口
  729. width–窗口宽度
  730. heigth– 窗口高度。
  731. sizeable–窗口大小是否可以调整( 0 – 不可调整 ; 1 – 可以调整 )。
  732. return value :
  733. ************************************/
  734. function openwin(url,windowName,width,height,sizeable)
  735. {
  736. var screenWidth = document.body.offsetWidth-50;//window.screen.width;
  737. var screenHeight = document.body.offsetHeight;//window.screen.height;
  738. var newWindowTop = (screenHeight-height)/2;
  739. var newWindowLeft = (screenWidth-width)/2;
  740. window.open(url,windowName,"top="+newWindowTop+",left="+newWindowLeft+",width="+width+",height="+height+",status=no,toolbar=no,menubar=no,scrollbars=no,location=no,resizable="+sizeable,"false");
  741. }
  742. /************************************
  743. Method : selectedadd(sourceobj,aimobj)
  744. purpose : 多选框选择列表项
  745. parameters : sourceobj – 源列表
  746. aimobj – 选择结果列表
  747. return value :
  748. ************************************/
  749. function selectedadd(sourceobj,aimobj)
  750. {
  751. j=aimobj.length;
  752. for (i=0;i<sourceobj.length;i++)
  753. {
  754. if(sourceobj.options[i].selected)
  755. {
  756. existed = false;
  757. for (k=0; k < j; k ++)
  758. {
  759. if (aimobj.options[k].value == sourceobj.options[i].value)
  760. {
  761. existed = true;
  762. break;
  763. }
  764. }
  765. if (!existed)
  766. {
  767. aimobj.options[j] = new Option(sourceobj.options[i].text,sourceobj.options[i].value);
  768. j++;
  769. }
  770. }
  771. }
  772. }
  773. /************************************
  774. Method : alladd(sourceobj,aimobj)
  775. purpose : 多选框选择全部列表项
  776. parameters : sourceobj – 源列表
  777. aimobj – 选择结果列表
  778. return value :
  779. ************************************/
  780. function alladd(sourceobj,aimobj)
  781. {
  782. allremove(aimobj);
  783. j=aimobj.length;
  784. for (i=0;i<sourceobj.length;i++)
  785. {
  786. aimobj.options[j]=new Option(sourceobj.options[i].text,sourceobj.options[i].value);
  787. j++;
  788. }
  789. }
  790. /************************************
  791. Method : allremove(removeobj)
  792. purpose : 移除所有选择列表项
  793. parameters : removeobj – 选择结果列表
  794. return value :
  795. ************************************/
  796. function allremove(removeobj)
  797. {
  798. removeobj.length = 0;
  799. }
  800. /************************************
  801. Method : selectedremove(removeobj)
  802. purpose : 移除选定的选择列表项
  803. parameters : removeobj – 选择结果列表
  804. return value :
  805. ************************************/
  806. function selectedremove(removeobj)
  807. {
  808. for (i=0;i<removeobj.length;i++)
  809. {
  810. if(removeobj.options[i].selected)
  811. {
  812. removeobj.options[i] = null;
  813. i--;
  814. }
  815. }
  816. }
  817. /************************************
  818. Method : openDateDialog(objectID)
  819. purpose : 打开一个日期选择窗口
  820. parameters : objectID – 日期输入框ID
  821. return value :
  822. ************************************/
  823. function openDateDialog(objectID) {
  824. var dateObject = eval("document.all." + objectID);
  825. var sURL = "/hzcms/scheme/js/calendar.htm" ;
  826. var nDialogWidth = 300;
  827. var nDialogHeight = 240;
  828. var nLeft = (window.screen.availWidth-nDialogWidth)/2;
  829. var nTop = (window.screen.availHeight-nDialogHeight)/2;
  830. var sFeatures = "dialogLeft:"+nLeft+"px;dialogTop:"+nTop+"px;dialogHeight:"+nDialogHeight+"px;dialogWidth:"+nDialogWidth+"px;help:no;status:no";
  831. var sReturnVal = window.showModalDialog(sURL,window,sFeatures);
  832. if (('undefined' != typeof(sReturnVal)) && (sReturnVal.length >1) )
  833. {
  834. dateObject.value = sReturnVal;
  835. }
  836. }
  837. /************************************
  838. purpose : 设置cookie,以下为cookie相关的操作
  839. ************************************/
  840. function setCookie(name,value,expiry,path,domain,secure){
  841. var nameString = name + "=" + value;
  842. var expiryString = (expiry == null) ? "" : " ;expires = "+ expiry.toGMTString();
  843. var pathString = (path == null) ? "" : " ;path = "+ path;
  844. var domainString = (path == null) ? "" : " ;domain = "+ domain;
  845. var secureString = (secure) ?";secure" :"";
  846. document.cookie = nameString + expiryString + pathString + domainString + secureString;
  847. }
  848. function getCookie (name) {
  849. var CookieFound = false;
  850. var start = 0;
  851. var end = 0;
  852. var CookieString = document.cookie;
  853. var i = 0;
  854. while (i <= CookieString.length) {
  855. start = i ;
  856. end = start + name.length;
  857. if (CookieString.substring(start, end) == name){
  858. CookieFound = true;
  859. break;
  860. }
  861. i++;
  862. }
  863. if (CookieFound){
  864. start = end + 1;
  865. end = CookieString.indexOf(";",start);
  866. if (end < start)
  867. end = CookieString.length;
  868. return unescape(CookieString.substring(start, end));
  869. }
  870. return "";
  871. }
  872. function deleteCookie(name){
  873. var expires = new Date();
  874. expires.setTime (expires.getTime() - 1);
  875. setCookie( name , "Delete Cookie", expires,null,null,false);
  876. }
  877. /**
  878. * 数据库查询的cookie校验,如果允许查询这写入新的cookie并执行查询,否则提示用户不要频繁查询
  879. */
  880. function checkcookie(interval)
  881. {
  882. var cookiename = "querytime";
  883. var cookievalue = getCookie(cookiename);
  884. var date = new Date();
  885. var curtime = date.getTime();
  886. var testtime = (curtime-interval*1000);
  887. if(testtime > cookievalue)
  888. {
  889. // alert("继续查询");
  890. //设置过期时间
  891. date.setTime(date.getTime() + 100000);
  892. setCookie(cookiename,curtime,date,null,null,false);
  893. return true;
  894. }
  895. else
  896. {
  897. alert("请不要频繁查询!");
  898. return false;
  899. }
  900. }
  901. /**
  902. * 计数器的cookie校验,
  903. */
  904. function checkCounterCookie(interval)
  905. {
  906. var cookiename = "indexcounter";
  907. var cookievalue = getCookie(cookiename);
  908. var date = new Date();
  909. var curtime = date.getTime();
  910. var testtime = (curtime-interval*1000);
  911. if(testtime > cookievalue)
  912. {
  913. //设置过期时间
  914. date.setTime(date.getTime() + 100000);
  915. setCookie(cookiename,curtime,date,null,null,false);
  916. return true;
  917. }
  918. else
  919. {
  920. return false;
  921. }
  922. }