2013-06-27 102 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