2010-12-11 135 views
0

我有三個選擇,即月份,日期和年份。爲此,一年是無關緊要的。我寫了一個腳本,以便在每月更改時,它會更改選擇日期的值,以便如果他們選擇2作爲一個月,則它會將其更改爲僅在二月的28天。基於另一個選擇的值更改選擇的值

+0

它顯示的任何錯誤??長度屬性是隻讀的。 – RSK 2010-12-11 10:23:13

+0

沒有顯示任何錯誤,並且錯誤控制檯中沒有任何錯誤。 - 長度是隻讀的,然後我可以把它拿出來,它不應該影響任何東西,因爲我正在循環,正確嗎? – 2010-12-11 10:24:54

回答

1

請在創建新選項前清除所有選項。

<script type="text/javascript"> 
    function pickdata(month){ 
     day = document.getElementById('day'); 
     len = day.options.length; 
     for(i=len-1;i>=0;i--) 
     { 
     day.remove(i); 
     } 
     switch(month){ 
      case "2": 
       max = 30; 
      break; 
      case "4": 
      case "6": 
      case "9": 
      case "11": 
       max = 31 
      break; 
      case "1": 
      case "3": 
      case "5": 
      case "7": 
      case "8": 
      case "10": 
      case "12": 
       max=32; 
      break; 
     } 
     for(i=1;i< max ; i++){ 
      var elOptNew = document.createElement('option'); 
      elOptNew.text = i; 
      elOptNew.value = i; 
      day.appendChild(elOptNew); 
     } 
    } 
</script> 

<select name="month" id="month" onchange="pickdata(this.value)"> 
+0

第一部分是如何理解的?如果他們選擇二月和長度爲31,它會刪除1使它30? 創建新元素應該是這樣的: [code] var elOptNew = document.createElement('option'); \t \t \t \t \t elOptNew.text = i; \t \t \t \t \t elOptNew.value = i; \t \t \t \t \t elSel = document.getElementById('day'); \t \t \t \t \t elSel.add(elOptNew); [/ code] – 2010-12-11 10:47:51

+0

對不起。我只是想說,首先在一天中刪除所有選項,然後根據所選的月份創建新的選項。在第一個代碼中錯過了for循環。現在修復了它 – RSK 2010-12-11 10:54:43

+0

我試着完全刪除腳本的第一部分,並刪除了我的日期選擇器中的所有選擇選項,以查看它是否正在創建任何元素,而沒有任何內容。 – 2010-12-11 11:18:16

相關問題