flow_dispose.js
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:5k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. function findObj(theObj, theDoc)
  2. {
  3.   var p, i, foundObj;
  4.   
  5.   if(!theDoc) theDoc = document;
  6.   if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  7.   {
  8.     theDoc = parent.frames[theObj.substring(p+1)].document;
  9.     theObj = theObj.substring(0,p);
  10.   }
  11.   if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  12.   for (i=0; !foundObj && i < theDoc.forms.length; i++) 
  13.     foundObj = theDoc.forms[i][theObj];
  14.   for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
  15.     foundObj = findObj(theObj,theDoc.layers[i].document);
  16.   if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  17.   
  18.   return foundObj;
  19. }
  20. function getradio(radionname) {
  21. var radioboxs = document.all.item(radionname);
  22. if (radioboxs!=null)
  23. {
  24. for (i=0; i<radioboxs.length; i++)
  25. {
  26. if (radioboxs[i].type=="radio" && radioboxs[i].checked)
  27. return radioboxs[i].value;
  28. }
  29. }
  30. return radioboxs.value
  31. }
  32. return "";
  33. }
  34. function getcheckbox(checkboxname){
  35. var checkboxboxs = document.all.item(checkboxname);
  36. var CheckboxValue = '';
  37. if (checkboxboxs!=null)
  38. {
  39. // 如果只有一个元素
  40. if (checkboxboxs.length==null) {
  41. if (checkboxboxs.checked) {
  42. return checkboxboxs.value;
  43. }
  44. }
  45. for (i=0; i<checkboxboxs.length; i++)
  46. {
  47. if (checkboxboxs[i].type=="checkbox" && checkboxboxs[i].checked)
  48. {
  49. if (CheckboxValue==''){
  50. CheckboxValue += checkboxboxs[i].value;
  51. }
  52. else{
  53. CheckboxValue += ","+ checkboxboxs[i].value;
  54. }
  55. }
  56. }
  57. //return checkboxboxs.value
  58. }
  59. return CheckboxValue;
  60. }
  61. function getCtlValue(ctlObj, ctlType) {
  62. var ctlName = ctlObj.name;
  63. var value = "";
  64. if (ctlType=="radio")
  65. value = getradio(ctlName);
  66. else if (ctlType=="checkbox")
  67. value = getcheckbox(ctlName);
  68. else
  69. value = ctlObj.value;
  70. return value;
  71. }
  72. function setCtlValue(ctlName, ctlType, ctlValue) {
  73. try {
  74. var obj = findObj(ctlName);
  75. if (ctlType=="checkbox") {
  76. if (ctlValue=="1")
  77. obj.checked = true;
  78. else
  79. obj.checked = false;
  80. }
  81. else
  82. obj.value = ctlValue;
  83. }
  84. catch (e) {
  85. }
  86. }
  87. // 禁止控件的同时,在其后插入hidden控件,以使被禁止的控件的值能够上传, ctlValue中为经过toHtml的值,ctlValueRaw中为原始值
  88. function DisableCtl(name, ctlType, ctlValue, ctlValueRaw) {
  89.    for(var i=0;i<flowForm.elements.length;i++) {
  90. var obj = flowForm.elements[i];
  91. // alert(obj.type);
  92. if (obj.name==name) {
  93. // var value = getCtlValue(obj, ctlType);
  94. // obj.insertAdjacentHTML("AfterEnd", "<input type=hidden name='" + name + "' value='" + obj.value + "'>");
  95. // obj.disabled = true;
  96. if (ctlType=="DATE" || ctlType=="DATE_TIME") {
  97. try {
  98. btnImgObj = findObj(name + "_btnImg");
  99. btnImgObj.outerHTML = "";
  100. }
  101. catch (e) {}
  102. obj.insertAdjacentHTML("AfterEnd", "<input type=hidden name='" + name + "' value='" + ctlValue + "'>");
  103. obj.outerHTML = ctlValue + "&nbsp;";
  104. }
  105. else if (ctlType=="checkbox") {
  106. var v = obj.checked;
  107. if (v) {
  108. obj.insertAdjacentHTML("AfterEnd", "<input type=hidden name='" + name + "' value='1'>");
  109.   obj.outerHTML = "(是)";
  110. }
  111. else {
  112. obj.insertAdjacentHTML("AfterEnd", "<input type=hidden name='" + name + "' value='0'>");
  113. obj.outerHTML = "(否)";
  114. }
  115. }
  116. else {
  117. obj.insertAdjacentHTML("AfterEnd", "<textarea style='display:none' name='" + name + "'>" + ctlValueRaw + "</textarea>");
  118. obj.outerHTML = ctlValue;
  119. }
  120. }
  121.    }
  122. }
  123. // 用控件的值来替代控件,用于把表单以报表方式显示时
  124. function ReplaceCtlWithValue(name, ctlType, ctlValue) {
  125.    for(var i=0;i<flowForm.elements.length;i++) {
  126. var obj = flowForm.elements[i];
  127. if (obj.name==name) {
  128. if (ctlType=="checkbox") {
  129. }
  130. else {
  131. if (ctlType=="DATE_TIME") {
  132. // 去除时间中的时分秒域
  133. var timeObj = findObj(name + "_time");
  134. timeObj.outerHTML = "";
  135. }
  136. obj.outerHTML = ctlValue;
  137. }
  138. }
  139.    }
  140. }
  141. // 清除其它辅助图片按钮等
  142. function ClearAccessory() {
  143. while (true) {
  144. var isFinded = false;
  145. var len = document.all.tags('IMG').length;
  146. for(var i=0; i<len; i++) { 
  147. try {
  148. var imgObj = document.all.tags('IMG')[i];
  149. // alert(imgObj.src);
  150. if (imgObj.src.indexOf("gif")!=-1 && imgObj.src.indexOf("file_flow")) {
  151. // imgObj.outerHTML = ""; // 会清除所有图片,当流程中表单存档时就会出现问题,目录树的图片也会被清除,另外在表单中特意上传的图片也会被清除
  152. // isFinded = true;
  153. }
  154. if (imgObj.src.indexOf("calendar.gif")!=-1) {
  155. imgObj.outerHTML = "";
  156. isFinded = true;
  157. }
  158. }
  159. catch (e) {}
  160. }
  161. if (!isFinded)
  162. break;
  163. }
  164. }
  165. var GetDate=""; 
  166. function SelectDate(ObjName,FormatDate){
  167. var PostAtt = new Array;
  168. PostAtt[0]= FormatDate;
  169. PostAtt[1]= findObj(ObjName);
  170. GetDate = showModalDialog("util/calendar/calendar.htm", PostAtt ,"dialogWidth:286px;dialogHeight:195px;status:no;help:no;");
  171. }
  172. function SetDate()
  173. findObj(ObjName).value = GetDate; 
  174. }
  175. function SelectDateTime(objName) {
  176. var dt = showModalDialog("util/calendar/time.htm", "" ,"dialogWidth:266px;dialogHeight:125px;status:no;help:no;");
  177. if (dt!=null)
  178. findObj(objName + "_time").value = dt;
  179. }