2013-03-20 19 views
0

我在javascript中嵌套的if結構有問題。任何幫助表示讚賞。如果在javascript中嵌套iframe

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,我不會得到預期的結果。

問候, 瑪尼

+0

爲什麼有一個'休息' – 2013-03-20 04:58:10

+0

對我來說似乎很好http://jsfiddle.net/arunpjohny/EsJXu/ – 2013-03-20 05:01:26

回答

4

首先,你不需要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; 
0

像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; 
    } 
} 

更reabable版本是,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; 
1

怎麼樣縮短回合與可重複使用的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

0
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; 
}