在if语句中可以使用的最大运算符数是多少?

时间:2009-12-29 12:29:19

标签: javascript jquery if-statement

我正在使用jquery而我正在尝试验证表单。我的问题是 - 您可以在单个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;
  } }

4 个答案:

答案 0 :(得分: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;
  }
}

等...?

答案 1 :(得分:4)

你可以做任意多的事情,但是如果你使用了太多的测试,那么你做错了什么,而且必须重新使用你的代码的程序员(可能是你自己)会讨厌你。

答案 2 :(得分:2)

如果您不想使用类,只需将所有字段名称添加到数组中并迭代它。

不仅可以提高可读性,而且您不必再担心运营商的数量。

这是一个更简单的解决方案,但并不像kender所建议的那样使用类。

答案 3 :(得分:0)

该数字仅受代码可读性的限制。在这种情况下,我会说它不是(可读,即):)。

此外,如果你问为什么这段代码不起作用,那么就像评论中提到的那样,$"#name"(和其余的)是无效的语法。由于$是一个函数,你需要将它的参数放在括号中:$('#name') ...