2010-09-21 78 views
0
if (form.a.value !=""&&form.b.value!="" &&form.c.value !="") 

這種情況有沒有更簡單的方法?這種情況有沒有更簡單的方法?

+0

什麼是 「形式」?什麼是「a」,「b」和「c」? – pleasedontbelong 2010-09-21 10:58:16

+0

你不需要知道:) – Snoob 2010-09-21 11:00:16

+0

呃,爲什麼問你是否願意回答基本問題? – 2010-09-21 11:02:20

回答

3

JavaScript是弱類型的,所以你可以把空字符串作爲布爾值false,所以下面的代碼應該工作:

if (form.a.value && form.b.value && form.c.value) { 

但是我不知道爲什麼你想改變這種代碼。其實它非常清楚而詳細。

+0

因爲它是冗長的:),有更短的路嗎? – Snoob 2010-09-21 11:00:39

+5

編寫可讀性和可維護性的代碼。在部署之前通過最小化工具運行它。 – thomasmalt 2010-09-21 11:10:27

+0

@patrick dw:哦,你說得對。看看規範後發現,[字符串值只有在長度爲零時才爲false](http://bclary.com/2004/11/07/#a-9.2)。 – Gumbo 2010-09-21 12:02:52

2

如果您只有三個字段(或更少),您可以保持原樣。如果您有更多(或未知)數量的字段需要檢查,請創建一個字段數組來檢查並在單獨的函數中循環執行檢查,以獲得更好的可維護性。事情是這樣的:

if(!Empty([form.a,form.b,form.c])) 
{ 
... 
} 

function Empty(elements) 
{ 
    for(var i=0;i<elements.length;i++) 
    { 
     if(elements[i].value) 
      return false;  
    } 
} 
+0

感謝您的建議 – Snoob 2010-09-21 11:05:12

1

也有偷懶的方法:)

if(form.a.value + form.b.value + form.c.value != "") 

if(form.a.value.length + form.b.value.length + form.c.value.length != 0) 

if(!form.a.value && !form.b.value && !form.c.value) 
+1

-1如果至少有一個不爲空,前兩個失敗。 – Gumbo 2010-09-21 11:14:18

+0

我會說他們懶惰:O – Azz 2010-09-21 18:53:51

相關問題