2015-06-22 185 views
2

下面的代码在开始日期和结束日期为空时给出警报。除此之外,我想要的东西就像开始日期已满,但结束日期未填满,应提醒“结束日期不能为空”,反之亦然。如何根据选择设置开始日期和结束日期的提醒?

function validatecommon(cal1,cal2) { 
    if (cal1 == '' || cal2 == '') { 
     alert("Start Date and End Date can not be left blank "); 
     return false; 
} 

回答

0

使用此:

function validatecommon(cal1,cal2) { 

if (cal1 == '' && cal2 == '') { 
      alert("Start Date and End Date can not be left blank "); 
      return false;} 
else 
    if(cal1 && cal1 != '' && cal2 == ''){ 
    alert("End Date can not be left blank "); 
       return false;} 
else 
    if(cal2 && cal2 != '' && cal1 == ''){ 
    alert("Start Date can not be left blank "); 
       return false;} 
} 
0

这仅供最终:

 if(cal1 != '' && cal2 == ''){ 
      alert("End Date can not be left blank "); 
      return false; 
    } 
0

记住,只要一个函数 '返回' 停止处理.. ..所以只其中一个条件将不断提醒。

function validatecommon(cal1,cal2) { 

    if (cal1 == '' && cal2 == '') { 
     alert("Start Date and End Date can not be left blank "); 
     return false; 
    } 
    if (cal1 == '') { 
     alert("Start Date can not be left blank "); 
     return false; 
    } 
    if (cal2 == '') { 
     alert("End Date can not be left blank "); 
     return false; 
    } 
    return true; 
} 
+0

在第一个测试中,或者||应该是&&&'。 – RobG

0

如果你想每一个情况下,你可以使用else if

if (cal1 == '' && cal2 == '') { 
     alert("Start Date and End Date can not be left blank "); 
     return false;} 
else if (cal1 == '' && cal2 != '') { 
     alert("Start Date can not be left blank "); 
     return false;} 
else if (cal1 != '' && cal2 == '') { 
     alert("End Date can not be left blank "); 
     return false;} 
else{return true} 
+0

没有必要为elses – mplungjan

+0

@mplungjan你说的是真的,如果你立即返回,你也可以做一个开关... – maioman

0
if (cal1 == '' && cal2 == '') { 
     alert("Start Date and End Date can not be left blank "); 
     return false; 
} 
else if (cal1 == '') { 
     alert("Start Date can not be left blank "); 
     return false; 
} 
else if (cal2 == '') { 
     alert("End Date can not be left blank "); 
     return false; 
} 
else{ 
    return true; 
} 
+0

其他不需要 – mplungjan

0

我也是:

function validatecommon(cal1,cal2) { 
    if (cal1 == '' && cal2 == '') { 
    alert("Start Date and End Date can not be left blank "); 
    return false; 
    } 
    if (cal1 == '') { 
    alert("Start Date can not be left blank "); 
    return false; 
    } 
    if (cal2 == '') { 
    alert("End Date can not be left blank "); 
    return false; 
    } 
    return true; 
} 
0

有很多方法可以做到这一点。 最简单的就是使用else if语句。 如果你不知道我会建议做一些阅读(尝试W3schools或像codechool这样的教程网站)。 您的最终代码应该是这个样子:!我刚刚用

if(!startDate && !endDate) { 
    //both are missing, alert here 
} else if (!startDate) { 
    //only missing start date, alert here 
} else if (!endDate) { 
    //only missing end Date, alert here 
} else { 
    //Both dates present, perform success action 
} 

注意的startDate和结束日期在这里,因为这样它会检查truthy和falsey值这里。因此,如果!startDate不仅仅是一个空字符串,而且实际上未定义,它将进入相应的块。猜测你可能没有意识到真实和虚假,因为你并没有意识到,如果这也是我建议阅读的东西。希望这可以帮助!

编辑:只记得如果变量是字符串'0',那么你会遇到麻烦,但是如果你只是检查日期应该罚款,只要注意如果你在别处使用这种方法。

相关问题