2009-12-29 54 views
1

我正在使用jquery,我試圖驗證表單。我的問題是 - 你可以在單個if語句中給出最大數量的測試。您可以在if語句中使用的最大操作符數是多少?

function cc_validate() { 
if ($("#name").val() == "" || $("#ship_name").val() == "" || $("#address").val() == "" || $("#city").val() == "" || $("#ship_city").val() == "" || $("#state").val() == "" || $("#ship_state").val() == "" || $("#postal_code").val() == "" || isNaN($("#postal_code").val()) || $("#phone").val() == "" || $("#ship_phone").val() == "" || isNaN($("#phone").val()) || isNaN($("#ship_phone").val()) || $("#mobile_number").val() == "" || $("#ship_mobile_number").val() == "" || isNaN($("#mobile_number").val()) || isNaN($("#ship_mobile_number").val()) || $("#email").val() == "") { 
return false; 

} else { 

return true; 
    } } 
+0

'$「#name」'是無效的語法。我想你的意思是$(「#name」)。 – Gumbo 2009-12-29 12:32:39

+0

剛剛編輯它來修復語法 – kender 2009-12-29 12:35:10

+0

我建議jquery.validation插件作爲更有價值的解決方案。 – 2013-02-22 21:24:53

回答

4

你可以做你想要的,但如果你使用太多的測試,那麼你正在做的事情錯了,程序員將不得不重新使用您的代碼(possibily自己)會恨您。

+0

...我想說,你粘貼的代碼有waaaaaay太多如果陳述測試 – marcgg 2009-12-29 12:33:06

+2

只有1如果語句在該代碼... – rfunduk 2009-12-29 12:34:36

+0

我的意思是測試...我的壞,我正在修復這個 – marcgg 2009-12-29 12:36:40

0

該數字僅受代碼可讀性的限制。在這種情況下,我會說它不是(可讀,那是):)。

另外,如果你問爲什麼這段代碼不起作用,那麼它在評論中提到的$"#name"(和其他)是無效的語法。由於$是一個函數,你需要把它的參數放在圓括號中:$('#name') ...

6

爲什麼在你的代碼中沒有添加一些類,像這樣:

<input id="postal_code" class="required number" /> 

,有你的jQuery檢查它是這樣的:

function cc_validate() { 
    $(".required").each(function() { 
    if (this.val() == '') return false; 
    } 
    $(".number").each(function() { 
    if (isNaN(this.val()) return false; 
    } 
} 

和這樣......?

2

如果您不想使用類,只需將所有字段名稱添加到數組中並對其進行迭代即可。

不僅會增加可讀性,而且您不必再擔心操作員的數量。

這是一個更簡單的解決方案,但並不像kender建議的那樣使用類。

相關問題