2010-12-11 27 views
0

選択、月、日、および年が3つあります。このために、年は無関係です。私はスクリプトを書いて、月を変えると日の値が変わるようにして、2つの月を選ぶと2月の場合は28日に変わるようにしました。別の選択の値に基づいて選択値を変更する

+0

エラーが表示されますか? lengthプロパティは読み取り専用です。 – RSK

+0

エラーは表示されず、エラーコンソールには何も表示されません。 - 長さは読み取り専用で、それを取り除くことはできますし、私はループをやっているので何にも影響しません。 –

答えて

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

最初の部分はどのように意味がありますか?彼らは2月2日を選択し、長さが31の場合、1を削除して30にします。 新しい要素を作成するには、次のようにする必要があります。 [code] var elOptNew = document.createElement( 'option'); \t \t \t \t \t elOptNew.text = i; \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] –

+0

申し訳ありません。私はちょうど最初にすべてのオプションを削除し、その後、選択した月に応じて新鮮なオプションを作成すると言うことを試みました。 forループ最初のコードで逃した。それは固定 – RSK

+0

私はスクリプトの最初の部分を完全に削除し、私の日のセレクタで、すべての要素を作成していたかどうかを見るためにすべての選択オプションを削除し、何もしてみました。 –

関連する問題