2016-05-02 10 views
0

私は時間の値をドロップダウンしています。ドロップダウンをクリックすると、ドロップダウンをリセットしたいと思います。私の現在のコードは、私がドロップダウンをクリックするたびに私に新しい値のセットを与えます。また、私は.empty()を使用しようとしましたが、うまくいきませんでした。ここに私のHTMLは次のとおりです。ここでonClick後のドロップダウン値をクリアしますか?

<td> 
    <select name="stime" id="stime"> 
     <option value="0">--Select start time--</option> 
    </select> 
</td> 

は私のjQueryのです:

$j('#stime').on('click', function() { 
     //Populate start time dropdown with values 
     for(var i=700; i<= 1700; i+=15){ 
      var mins = i % 100; 
      var hours = parseInt(i/100); 

      if (mins > 45) { 
       mins = 0; 
       hours += 1; 
       i = hours * 100; 
      } 

      var AmPm = " AM"; 
      //set hours 12 to PM 
      if(hours == 12){ 
       AmPm = " PM"; 
      } 

     //format all hours greater than to PM 
     if (hours > 12) { 
      hours = hours - 12; 
      AmPm = " PM"; 
     } 

     $j('#stime').children().not(":first").empty(); 

     //populate stime with values 
     $j('#stime').append('<option value="'+('0' + (hours)).slice(-2)+':'+('0' + mins).slice(-2)+AmPm+'">'+('0' + (hours)).slice(-2)+':'+('0' + mins).slice(-2)+AmPm+' </option>'); 
    }  
}); 

私の現在のコードは、ダウン私に空白の低下を与え、私は毎回の後、私はをクリックしてそのスクロールバーが小さくなっていることがわかりますドロップボックスは値が決して削除されなかったことを伝えます。誰かがこの問題を助けることができるなら私に知らせてください。ありがとうございました。

答えて

1

$("#stime option:gt(0)").remove();

$j('#stime').on('click', function() { $j("#stime option:gt(0)").remove();

...

ような関数の宣言怒鳴るこの権利を追加し、この行を削除

$j('#stime').children().not(":first").empty();

上記の行はforループ内にあり、すべての項目を空の文字列にしています。

+0

このコードを試しましたが、ドロップダウンで正しい値を取得していますが、オプションをクリックしても何も起こりません。私のドロップダウンはクリックされたオプションを選択しなかった。 –

+0

です。ドロップダウンをクリックするたびに値を削除して生成するので、あなたは何をしたいのかに応じてイベントを変更する必要があります。 –

+0

他の方法がありますか? –

関連する問題