2009-12-29 51 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建议的那样使用类。

相关问题