2013-03-24 149 views
3

我已經嘗試瞭解決其他問題在stackoverflow上解答,但他們都沒有爲我工作。在表單中,我想根據用戶選擇的月份更新一個月中的天數。jquery添加一個選項來選擇

#DOBM是本月選擇列表中的ID(DOBM代表出生日期月)
#DOBD是一天選擇列表中的ID(DOBD代表出生日期當日)
基本上,如果#DOBM有值01,03,05,07,08,10,12,我們在一個月31天。

這裏是我的代碼:

if ((($('#DOBM').val() == '01'||'03'||'05'||'07'||'08'||'10'||'12')) 
&& ($("#DOBD option[value='31']").length == 0)) { 
    $("#DOBD").append("<option value='31'>31</option>");} 

的第二行代碼是看是否選擇在當天選擇列表中已經存在。 最後一行代碼是追加新選項(第31天),如果我們在31天的一個月內,並且選項31尚不存在。

代碼只是不更新​​DOBD選擇列表。任何想法我做錯了什麼?

謝謝。

編輯:我是新的在stackoverflow;如果我能解決你的問題,他們都會幫助我很多。

回答

7

你的if語句是錯誤的。你必須在.val()與每個值作爲這樣的比較:

if($('#DOBM').val() == '01'||$('#DOBM').val() == '03' 

編輯

可選,你也可以使用switch語句:

$("#btn").on("click",function(){ 
    switch($("#DOBM").val()) 
    { 
     case "01": 
     case "03": 
     case "05": 
     case "07": 
     case "08": 
     $("#DOBD").append("<option value='31'>31</option>"); 
      break; 
    } 
}); 

的jsfiddlehttp://jsfiddle.net/dRJHh/

有數組,根據@sberry建議:

var vals = ['01','03', '05', '07', '08']; 
$("#btn").on("click",function(){ 

    if(jQuery.inArray($("#DOBM").val(),vals) > -1) 
    { 
     $("#DOBD").append("<option value='31'>31</option>"); 
    } 
}); 

的jsfiddlehttp://jsfiddle.net/yhcDa/

+1

將b的天數但是,創建一個局部變量並在所有比較中使用它,或者使用類似inArray類型的函數。 – sberry 2013-03-24 05:36:57

+0

耶,它的工作原理!謝謝! – LPB 2013-03-24 06:00:23

1
var month = $('#DOBM').val();  
if (((month == '01')||(month =='03')||(month =='05')||(month =='07')||(month =='08')||(month =='10')||(month =='12')) && ($("#DOBD option[value='31']").length == 0)) 
{ 
     $("#DOBD").append("<option value='31'>31</option>"); 
} 

或者你也可以做到這一點

var month = $('#DOBM').val(); 
var arr = [ '01','03', '05','07', '08', '10', '12']; 
if(($.inArray(month, arr) != -1) && ($("#DOBD option[value='31']").length == 0)) 
{ 
    $("#DOBD").append("<option value='31'>31</option>"); 
} 

或者你可以直接檢查在一個月

var month = $('#DOBM').val(); 
var year = 2013; 
if((Date(year, month, 0).getDate() == 31) && ($("#DOBD option[value='31']").length == 0)) { 
    $("#DOBD").append("<option value='31'>31</option>"); 
} 
+0

:)它的工作原理!謝謝! – LPB 2013-03-24 06:01:07

相關問題