我已经尝试解决在 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/