2013-06-27 154 views
0

我想要做一個月的下拉,需要HTML並刪除前幾個月,如果選擇當前年份。所有的作品都可以,但它總是將月份選項設置爲對象中的最後一個,嘗試對焦,沒有喜悅地選擇。jquery選擇列表選項焦點

http://jsfiddle.net/FneGp/

var selectList = $("select#months"); 
    var selectListOptions = $("select#months option"); 

    var d = new Date(), 
     n = d.getMonth(), 
     y = d.getFullYear(); 
    $("select#years").on("change", function(){ 
     if ($(this).val() == y) { 
      $("select#months").children("option").each(function() { 
       if ($(this).val() <= n) { 
        $(this).remove(); 
       } 
      }); 

     } 
     else { 
      selectListOptions.appendTo(selectList); 
     } 
    }); 

我已成立了一個小提琴顯示問題。

任何幫助,衷心感謝

在此先感謝

理查德

+0

我實在看不出是什麼錯誤......而不應年下降前的一個月下來來了嗎? – JCOC611

+0

沒有錯誤,它只是如果您將年份更改爲除2014+之外的任何內容,它將重點設置爲月份列表中的最後一個選項,即12月份 – user989952

+0

沒有錯誤....... –

回答

3

一個簡單的解決方案,我建議是要改變選擇以下

<select id="months">  
     <option value="1">January</option> 
     <option value="2">February</option> 
     <option value="3">March</option> 
     <option value="4">April</option> 
     <option value="5">May</option> 
     <option value="6">June</option> 
     <option value="7">July</option> 
     <option value="8">August</option> 
     <option value="9">September</option> 
     <option value="10">October</option> 
     <option value="11">November</option> 
     <option value="12">December</option> 
    <option selected="selected">Month</option> 
</select> 

提到,因爲附加的最後時選項正在被jQuery選中。

編輯:

更改else語句如下

else { 
      selectListOptions.appendTo(selectList); 
      $('#months option:contains("Month")').prop('selected', true); 
     } 
+0

謝謝,可悲的是,這不是一個選項MVC和它的相當嚴格 – user989952

+0

@ user989952它的好,讓我們嘗試在追加後設置選項「月」。這是否意義? – Praveen

+0

@ user989952檢查我更新的答案。 – Praveen