国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

265 lines
8.6KB

  1. //选择地区的二级分类
  2. function selNext(oj, v)
  3. {
  4. var newobj = oj.options;
  5. var selv = parseInt(v);
  6. var maxv = parseInt(v) + 500;
  7. while(newobj.length > 0) {
  8. oj.remove(0);
  9. }
  10. clear(oj);
  11. if (selv==0) {
  12. aOption = document.createElement('OPTION');
  13. aOption.text = '具体地区';
  14. aOption.value = '0';
  15. oj.options.add(aOption);
  16. return;
  17. } else {
  18. aOption = document.createElement('OPTION');
  19. aOption.text = '具体地区';
  20. aOption.value = '0';
  21. oj.options.add(aOption);
  22. }
  23. var str = '';
  24. for (i=selv+1; i < maxv; i++) {
  25. if (!em_nativeplaces[i]) continue;
  26. aOption = document.createElement('OPTION');
  27. aOption.text = em_nativeplaces[i];
  28. aOption.value = i;
  29. oj.options.add(aOption);
  30. }
  31. }
  32. //子类改变事件
  33. function ChangeSon()
  34. {
  35. //由于支持3级联动,所以这里需要对自己改变进行重构
  36. var emname = this.name.replace('_son', '');
  37. if ( document.getElementById(emname+'_sec') ) {
  38. var oj = document.getElementById(emname + '_sec');
  39. } else {
  40. var oj = document.createElement('select');
  41. oj.name = emname + '_sec';
  42. oj.id = emname + '_sec';
  43. oj.className = "form-control";
  44. oj.onchange = ChangeSec;
  45. }
  46. var v = this.options[this.selectedIndex].value;
  47. document.getElementById('hidden_'+emname).value = v;
  48. var newobj = oj.options;
  49. var selarr = eval('em_'+emname+'s');
  50. var selv = parseInt(v);
  51. var maxv = parseInt(v) + 0.5;
  52. i = 0;
  53. while(newobj && newobj.length > 0) oj.remove(0);
  54. clear(oj);
  55. if (selv == 0) {
  56. aOption = document.createElement('OPTION');
  57. aOption.text = '请选择..';
  58. aOption.value = '0';
  59. oj.options.add(aOption);
  60. return;
  61. } else {
  62. aOption = document.createElement('OPTION');
  63. aOption.text = '请选择..';
  64. aOption.value = '0';
  65. oj.options.add(aOption);
  66. }
  67. var str = '';
  68. var j=0;
  69. for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) {
  70. if (!selarr[i]) continue;
  71. aOption = document.createElement('OPTION');
  72. aOption.text = selarr[i];
  73. aOption.value = i;
  74. oj.options.add(aOption);
  75. j++;
  76. }
  77. if (j > 0) document.getElementById('span_'+emname+'_sec').appendChild(oj);
  78. else document.getElementById('span_'+emname+'_sec').innerHTML = "";
  79. }
  80. //改变第三级的事件
  81. function ChangeSec()
  82. {
  83. var emname = this.name.replace('_sec', '');
  84. var topSelObj = document.getElementById(emname+'_top');
  85. if (this.options[this.selectedIndex].value==0) {
  86. document.getElementById('hidden_'+emname).value = topSelObj.options[topSelObj.selectedIndex].value;
  87. } else {
  88. document.getElementById('hidden_'+emname).value = this.options[this.selectedIndex].value;
  89. }
  90. }
  91. //顶级类改变事件
  92. function selNextSon()
  93. {
  94. var emname = this.name.replace('_top', '');
  95. if ( document.getElementById(emname+'_son') ) {
  96. var oj = document.getElementById(emname + '_son');
  97. } else {
  98. var oj = document.createElement('select');
  99. oj.name = emname + '_son';
  100. oj.id = emname + '_son';
  101. oj.className = "form-control";
  102. oj.onchange = ChangeSon;
  103. }
  104. var v = this.options[this.selectedIndex].value;
  105. document.getElementById('hidden_'+emname).value = v;
  106. var newobj = oj.options;
  107. var selarr = eval('em_'+emname+'s');
  108. var selv = parseInt(v);
  109. var maxv = parseInt(v) + 500;
  110. while(newobj && newobj.length > 0) oj.remove(0);
  111. clear(oj);
  112. if (selv==0) {
  113. aOption = document.createElement('OPTION');
  114. aOption.text = '请选择..';
  115. aOption.value = '0';
  116. oj.options.add(aOption);
  117. return;
  118. } else {
  119. aOption = document.createElement('OPTION');
  120. aOption.text = '请选择..';
  121. aOption.value = '0';
  122. oj.options.add(aOption);
  123. }
  124. var str = '';
  125. for (i=selv+1; i < maxv; i++) {
  126. if (!selarr[i]) continue;
  127. aOption = document.createElement('OPTION');
  128. aOption.text = selarr[i];
  129. aOption.value = i;
  130. oj.options.add(aOption);
  131. }
  132. document.getElementById('span_'+emname+'_son').appendChild(oj);
  133. }
  134. //根据数组生成多级联动菜单
  135. function MakeTopSelect(emname, selvalue)
  136. {
  137. var selectFormHtml = '';
  138. var aOption = null;
  139. var selObj = document.createElement("select");
  140. selObj.name = emname + '_top';
  141. selObj.id = emname + '_top';
  142. selObj.className = "form-control";
  143. selObj.onchange = selNextSon;
  144. var selarr = eval('em_'+emname+'s');
  145. var topvalue = 0;
  146. var sonvalue = 0;
  147. var secvalue = 0;
  148. aOption = document.createElement('OPTION');
  149. aOption.text = '请选择..';
  150. aOption.value = 0;
  151. selObj.options.add(aOption);
  152. if (selvalue % 500 == 0 ) {
  153. topvalue = selvalue;
  154. }
  155. //如果是小数,则依次取出顶级数值,二级数值以及三级数值
  156. else if (!!(selvalue % 1))
  157. {
  158. secvalue = selvalue;
  159. sonvalue = Math.floor(selvalue);
  160. topvalue = sonvalue - (sonvalue % 500);
  161. //alert(secvalue);
  162. } else {
  163. sonvalue = selvalue;
  164. topvalue = selvalue - (selvalue % 500);
  165. }
  166. for (i = 500; i <= selarr.length; i += 500) {
  167. if (!selarr[i]) continue;
  168. aOption = document.createElement('OPTION');
  169. if (i == topvalue) {
  170. aOption = document.createElement('OPTION');
  171. aOption.text = selarr[i];
  172. aOption.value = i;
  173. selObj.options.add(aOption);
  174. aOption.selected = true;
  175. } else {
  176. aOption = document.createElement('OPTION');
  177. aOption.text = selarr[i];
  178. aOption.value = i;
  179. selObj.options.add(aOption);
  180. }
  181. }
  182. document.getElementById('span_'+emname).appendChild(selObj);
  183. //如果子类存在值,创建子类
  184. selObj = document.createElement("select");
  185. selObj.name = emname + '_son';
  186. selObj.id = emname + '_son';
  187. selObj.className = "form-control";
  188. selObj.onchange = ChangeSon;
  189. aOption = document.createElement('OPTION');
  190. aOption.text = '请选择..';
  191. aOption.value = 0;
  192. selObj.options.add(aOption);
  193. //当大类有值输出子类
  194. if (topvalue > 0)
  195. {
  196. var selv = topvalue;
  197. var maxv = parseInt(topvalue) + 500;
  198. for (i = selv + 1; i < maxv; i++) {
  199. if (!selarr[i]) continue;
  200. aOption = document.createElement('OPTION');
  201. if (i == sonvalue) {
  202. aOption = document.createElement('OPTION');
  203. aOption.text = selarr[i];
  204. aOption.value = i;
  205. selObj.options.add(aOption);
  206. aOption.selected = true;
  207. } else {
  208. aOption = document.createElement('OPTION');
  209. aOption.text = selarr[i];
  210. aOption.value = i;
  211. selObj.options.add(aOption);
  212. }
  213. }
  214. }
  215. document.getElementById('span_'+emname+'_son').appendChild(selObj);
  216. //若存在第三级则创建
  217. if (secvalue > 0) {
  218. selObj = document.createElement("select");
  219. selObj.name = emname + '_sec';
  220. selObj.id = emname + '_sec';
  221. selObj.onchange = ChangeSec;
  222. aOption = document.createElement('OPTION');
  223. aOption.text = '请选择..';
  224. selObj.className = "form-control";
  225. aOption.value = 0;
  226. selObj.options.add(aOption);
  227. var selv = sonvalue;
  228. var maxv = parseInt(sonvalue) + 0.5;
  229. i = 0;
  230. for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) {
  231. if (!selarr[i]) continue;
  232. aOption = document.createElement('OPTION');
  233. if (i == secvalue) {
  234. aOption = document.createElement('OPTION');
  235. aOption.text = selarr[i];
  236. aOption.value = i;
  237. selObj.options.add(aOption);
  238. aOption.selected = true;
  239. } else {
  240. aOption = document.createElement('OPTION');
  241. aOption.text = selarr[i];
  242. aOption.value = i;
  243. selObj.options.add(aOption);
  244. }
  245. }
  246. }
  247. document.getElementById('span_'+emname+'_sec').appendChild(selObj);
  248. }
  249. //两个小数相加进度计算
  250. function FloatAdd(arg1, arg2)
  251. {
  252. var r1,r2,m;
  253. try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
  254. try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
  255. m=Math.pow(10,Math.max(r1,r2))
  256. return (arg1*m+arg2*m)/m
  257. }
  258. //清除旧对象
  259. function clear(o)
  260. {
  261. l=o.length;
  262. for (i = 0; i< l; i++) {
  263. o.options[1]=null;
  264. }
  265. }