jQuery使用isNumeric的多个条件

时间:2013-05-14 19:51:33

标签: jquery performance

我想弄清楚最好的做法是做些什么。

  1. if语句中是否包含if语句是件坏事。
  2. 如果有更好的方法来压缩我的代码,那么我就不会将一堆逻辑运算符链接在一起。
  3. 另外我无法弄清楚为什么我的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
     }
    }
    });
    

1 个答案:

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