在javascript中嵌套if else

nested if else in javascript

本文关键字:if else 嵌套 javascript      更新时间:2023-09-26

我在javascript中嵌套if结构有麻烦。如有任何帮助,不胜感激。

function validateForm()
{
    var a = document.forms["demo1"]["addr1"].value;
    var b = document.forms["demo1"]["city"].value;
    //var c = document.forms["demo1"]["fname"].value;
    //var d = document.forms["demo1"]["lname"].value;
    //var f = document.forms["demo1"]["phno"].value;
    //var g = document.forms["demo1"]["email"].value;
    //var g1 = document.forms["demo1"]["cemail"].value;
    //var h = document.forms["demo1"]["pwd"].value;
    //var h1 = document.forms["demo1"]["cpwd"].value;
    if(b=="" || b==null)
    {
      alert("Please enter your city");
      return false;
      break;
    }
    else if(a=="" || a==null)
        {
            alert("Please enter your address");
            return false;
            break;
        }
    else {return true;} 
}
<form name = "demo1" action = "exp2.php" onsubmit = "return validateForm()" method = "POST">

如果只有一个if语句,代码可以正常工作(如预期)。但是如果不止一个if else被部署,我就不会得到预期的结果。

问候,摩尼

首先,您不需要break语句,它们在此上下文中是无用的。

第二,你不需要嵌套,事实上,你不应该,因为ab的检查是相互独立的:
if(b=="" || b==null)
{
    alert("Please enter your city");
    return false;
}
if(a=="" || a==null)
{
    alert("Please enter your address");
    return false;
}
return true;

使用可重用的isEmpty函数来缩短代码如何

function validateForm()
{
    var isEmpty = function ( name , label ){
          var val = document.forms["demo1"][ name ].value;
          if( ! val  )
          {
               alert("Please enter your "+ label );
               return true;     
          }
          return false;
    }         
    return !isEmpty( 'city', 'city') && 
           !isEmpty( 'addr1', 'address');
}

isEmpty返回truefalse

if(b=="" || b==null) {
alert("Please enter your city");
return false;
}
else if(a=="" || a==null) {
alert("Please enter your address");
return false;
}
else {
return true;
}

就像paxdiablo说的,你可以使用两个单独的if语句。

但是如果你只想在输入城市时需要地址,你必须意识到这不是一个嵌套的if语句。这是:

if(b=="" || b==null)
{
  alert("Please enter your city");
  return false;
}
else 
{
    if(a=="" || a==null)
    {
        alert("Please enter your address");
        return false;
    }
    else 
    {
        return true;
    }
}

一个更可行的版本应该是,imo:

if(b=="" || b==null)
{
  alert("Please enter your city");
  return false;
}
if((b=="" || b == null) && (a=="" || a==null))
{
    alert("Please enter your address");
    return false;
}