我在jsp.Field A中有两个带有ID A和B的文本字段。只取四位数.B是日期字段,取决于字段A.字段B仅显示,因为字段A值B中的值更改变了
我正在使用以下js代码
$('#A').keyup(function(){
var number=$.trim($('#A').val());
var d=new Date();
var month=d.getMonth()+1;
var year=d.getFullYear();
var dDate=d.getDate()+parseInt(number);
if((year%4!=0) && (month==2 && dDate>28)){
month=month+1;
dDate=dDate-28;
}else if((year%4==0) && (month==2 && dDate>29)){
month=month+1;
dDate=dDate-29;
}else if(month==(1||3||5||7||8||10||12) && dDate>31){
month=month+1;
dDate=parseInt(dDate)-31;
}else if(month==(4||6||9||11) && dDate>30){
month=month+1;
dDate=dDate-30;
}
$('#B').val(month+'/'+dDate+'/'+year);
})
但我无法在上面的代码中使用if else条件。请给我解决方案
由于
答案 0 :(得分:0)
尝试此操作:您可以使用month==(1||3||5||7||8||10||12)
来检查月份是否等于数组中的某个值,而不是像indexOf
那样检查月份。
$(function(){
$('#A').keyup(function(){
var array31=[1,3,5,7,8,10,12];
var array30=[4,6,9,11];
var number=$.trim($(this).val());
var d=new Date();
var month=d.getMonth()+1;
var year=d.getFullYear();
var dDate=d.getDate()+parseInt(number)||0;
if((year%4!=0) && (month==2 && dDate>28)){
month=month+1;
dDate=dDate-28;
}else if((year%4==0) && (month==2 && dDate>29)){
month=month+1;
dDate=dDate-29;
}else if(array31.indexOf(month)!=-1 && dDate>31){
month=month+1;
dDate=parseInt(dDate)-31;
}else if(array30.indexOf(month)!=-1 && dDate>30){
month=month+1;
dDate=dDate-30;
}
$('#B').val(month+'/'+dDate+'/'+year);
})
});
<强> DEMO 强>