如何在keyup函数中使用if else条件

时间:2014-10-07 11:35:35

标签: javascript jquery jsp

我在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条件。请给我解决方案

由于

1 个答案:

答案 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