4级动态组合框

下面是用于4级动态组合框的Java脚本
它工作正常,直到第三级,但在第四级,我面临一些问题.我已经在ydist中给出了24,30和36的值...但它是显示html文件中唯一的最后一个变化值(它只显示36的值,它没有显示24和30的值...因为我放了更多的值42,48,.....它隐藏了之前的值,只显示了脚本中给出的最后一个值)

选择 | 换行 | 行号
  1. // State lists
  2. var ystates = new Array();
  3.  
  4. ystates['35'] = new Array('24','30','36','42','48','54','60','66','72');
  5. ystates['75'] = new Array('25','37','50','56','62','75','81','87','94','100','112','125','137','150','162','175','192');
  6.  
  7. // City lists
  8. var ycities = new Array();
  9.  
  10. ycities['35'] = new Array();
  11. ycities['35']['24'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  12. ycities['35']['30'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  13. ycities['35']['36'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  14. ycities['35']['42'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  15. ycities['35']['48'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  16. ycities['35']['54'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  17. ycities['35']['60'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  18. ycities['35']['66'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  19. ycities['35']['72'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
  20.  
  21. ycities['75'] = new Array();
  22. ycities['75']['25'] = new Array('36','48','60','72','85','96','108','120','132','144');
  23. ycities['75']['37'] = new Array('36','48','60','72','85','96','108','120','132','144');
  24. ycities['75']['50'] = new Array('36','48','60','72','85','96','108','120','132','144');
  25. ycities['75']['56'] = new Array('36','48','60','72','85','96','108','120','132','144');
  26. ycities['75']['62'] = new Array('36','48','60','72','85','96','108','120','132','144');
  27. ycities['75']['75'] = new Array('36','48','60','72','85','96','108','120','132','144');
  28. ycities['75']['81'] = new Array('36','48','60','72','85','96','108','120','132','144');
  29. ycities['75']['87'] = new Array('36','48','60','72','85','96','108','120','132','144');
  30. ycities['75']['94'] = new Array('36','48','60','72','85','96','108','120','132','144');
  31. ycities['75']['100'] = new Array('36','48','60','72','85','96','108','120','132','144');
  32. ycities['75']['112'] = new Array('36','48','60','72','85','96','108','120','132','144');
  33. ycities['75']['125'] = new Array('36','48','60','72','85','96','108','120','132','144');
  34. ycities['75']['137'] = new Array('36','48','60','72','85','96','108','120','132','144');
  35. ycities['75']['150'] = new Array('36','48','60','72','85','96','108','120','132','144');
  36. ycities['75']['162'] = new Array('36','48','60','72','85','96','108','120','132','144');
  37. ycities['75']['175'] = new Array('36','48','60','72','85','96','108','120','132','144');
  38. ycities['75']['192'] = new Array('36','48','60','72','85','96','108','120','132','144');
  39.  
  40. // District lists
  41. var ydists = new Array();
  42.  
  43. ydists['35'] = new Array();
  44. ydists['35']['24']= new Array();
  45. ydists['35']['24']['36'] = new Array('594');
  46. ydists['35']['24']['42'] = new Array('607');
  47. ydists['35']['24']['48'] = new Array('628');
  48. ydists['35']['24']['54'] = new Array('648');
  49. ydists['35']['24']['60'] = new Array('658');
  50. ydists['35']['24']['66'] = new Array('679');
  51. ydists['35']['24']['72'] = new Array('699');
  52. ydists['35']['24']['78'] = new Array('712');
  53. ydists['35']['24']['84'] = new Array('732');
  54. ydists['35']['24']['90'] = new Array('743');
  55. ydists['35']['24']['96'] = new Array('763');
  56.  
  57. ydists['35'] = new Array();
  58. ydists['35']['30']= new Array();
  59. ydists['35']['30']['36'] = new Array('594');
  60. ydists['35']['30']['42'] = new Array('607');
  61. ydists['35']['30']['48'] = new Array('628');
  62. ydists['35']['30']['54'] = new Array('648');
  63. ydists['35']['30']['60'] = new Array('658');
  64. ydists['35']['30']['66'] = new Array('679');
  65. ydists['35']['30']['72'] = new Array('699');
  66. ydists['35']['30']['78'] = new Array('712');
  67. ydists['35']['30']['84'] = new Array('732');
  68. ydists['35']['30']['90'] = new Array('743');
  69. ydists['35']['30']['96'] = new Array('763');
  70.  
  71. ydists['35'] = new Array();
  72. ydists['35']['36']= new Array();
  73. ydists['35']['36']['36'] = new Array('594');
  74. ydists['35']['36']['42'] = new Array('607');
  75. ydists['35']['36']['48'] = new Array('628');
  76. ydists['35']['36']['54'] = new Array('648');
  77. ydists['35']['36']['60'] = new Array('658');
  78. ydists['35']['36']['66'] = new Array('679');
  79. ydists['35']['36']['72'] = new Array('699');
  80. ydists['35']['36']['78'] = new Array('712');
  81. ydists['35']['36']['84'] = new Array('732');
  82. ydists['35']['36']['90'] = new Array('743');
  83. ydists['35']['36']['96'] = new Array('763');
  84.  
  85. function setyStates() {
  86.   cntrySel = document.getElementById('ycountry');
  87.   stateList = ystates[cntrySel.value];
  88.   changeSelect('ystate', stateList, stateList);
  89.   setyCities();
  90. }
  91.  
  92. function setyCities() {
  93.   cntrySel = document.getElementById('ycountry');
  94.   stateSel = document.getElementById('ystate');
  95.   cityList = ycities[cntrySel.value][stateSel.value];
  96.   changeSelect('ycity', cityList, cityList);
  97. }
  98.  
  99. function setyDist() {
  100.   cntrySel = document.getElementById('ycountry');
  101.   stateSel = document.getElementById('ystate');
  102.   citySel = document.getElementById('ycity');
  103.   distList = ydists[cntrySel.value][stateSel.value][citySel.value];
  104.   changeSelect('ydist', distList, distList);
  105. }
  106.  
  107. function changeSelect(fieldID, newOptions, newValues) {
  108.   selectField = document.getElementById(fieldID);
  109.   selectField.options.length = 0;
  110.   for (i=0; i<newOptions.length; i++) {
  111.     selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]);
  112.   }
  113. }
  114.  
  115. // Multiple onload function created by: Simon Willison
  116. // http://simonwillison.net/2004/May/26/addLoadEvent/
  117. function addLoadEvent(func) {
  118.   var oldonload = window.onload;
  119.   if (typeof window.onload != 'function') {
  120.     window.onload = func;
  121.   } else {
  122.     window.onload = function() {
  123.       if (oldonload) {
  124.         oldonload();
  125.       }
  126.       func();
  127.     }
  128.   }
  129. }
  130.  
  131. addLoadEvent(function() {
  132.   setyStates();
  133. });
# 回答1


你有相应的HTML码吗?这将使测试和调试变得更容易.

标签: Javascript

添加新评论