0

我试图弄清楚几件事的最佳做法是什么。

  1. if语句中包含if语句是否是一件坏事。
  2. 如果有更好的方法来压缩我的代码,那么我不会将一堆逻辑运算符链接在一起。

我也不知道为什么我isNumeric的不工作,我有一个非常简单的表单,有几个输入框,我在我的 jquery 中循环它们。发生的情况是我可以输入一串大于 5 的字母,并且不会达到isNumeric条件。理想情况下,用户必须为此输入数字。有任何想法吗?

$("form :input").each(function(){

if(this.id = "zipCode" && $(this).val().length < 5 && $(this).is(":visible")){
 if($.isNumeric($(this).val())){
     //do something
 }
}
});
4

1 回答 1

1

您向isNumeric函数传递了错误的参数。这条线

if($.isNumeric($(this.val())){

应该

if($.isNumeric($(this).val())){

至于长长的条件列表,您可以将它们重构为一个单独的函数,其名称反映了其用途。例如,在这种情况下,您可以创建如下函数:

function isValidZipcode(field) {
    return field.id = "zipCode" && 
           $(field).val().length < 5 && 
           $(field).is(":visible");
}

然后它看起来像这样更干净:

if(isValidZipcode(this)){
    if($.isNumeric($(this).val())){
         //do something
    }
}
于 2013-05-14T20:06:30.923 回答