Jquery添加一个选项

LPB*_*LPB 3 jquery select append option

我已经尝试过在stackoverflow上回答的其他问题的解决方案,但它们都没有为我工作.在表单中,我想根据用户选择的月份更新一个月中的天数.

#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>");}
Run Code Online (Sandbox Code Playgroud)

第二行代码是查看日期选择列表中是否已存在该选项.最后一行代码是如果我们在31个月内并且如果选项31尚不存在,则附加新选项(第31天).

代码只是不更新​​DOBD选择列表.对我做错了什么的想法?

谢谢.

编辑:我是stackoverflow的新手; 如果我能得到你的答案,他们都帮助了我很多.

Han*_*año 7

你的if语句错了.你必须将.val()每个值与之比较:

if($('#DOBM').val() == '01'||$('#DOBM').val() == '03'
Run Code Online (Sandbox Code Playgroud)

编辑

您也可以选择使用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;
    }
});
Run Code Online (Sandbox Code Playgroud)

JSFiddle:http://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>");
    }
});
Run Code Online (Sandbox Code Playgroud)

jsFiddle:http://jsfiddle.net/yhcDa/