国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

286 wiersze
9.0KB

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