我已经尝试解决在 stackoverflow 上回答的其他问题,但没有一个对我有用。在表单中,我想根据用户选择的月份更新一个月中的天数。
#DOBM 是月份选择列表的 ID(DOBM 代表 Date Of Birth Month)#DOBD 是日期选择列表的 ID(DOBD 代表 Date Of Birth Day)
基本上,如果 #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 尚不存在,则最后一行代码是 append 新选项(第 31 天)。

该代码只是不更新​​ DOBD 选择列表。知道我做错了什么吗?

谢谢。

编辑:我是 stackoverflow 的新手;如果我能回答你的问题,他们都帮了我很多。

最佳答案

你的 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;
    }
});

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>");
    }
});

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

关于Jquery 添加一个选项来选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15595463/

10-14 20:13
查看更多