2013-12-17 49 views
0

我想验证号码,但这段代码不工作。 当我输入像(a,b,c)这样的字符不显示错误,并且我想通过,如果只有一个数字。jquery验证号码不工作

$(function() { 
    $(".checkNumber").click(function() { 
     var number = $("#number").val(); 
     if (number.length < 1 && !$.isNumeric(number)) { 
      // show errors 
      ; 
     } 
    }); 
}); 
+1

你的代码的格式不正确,请改正它,所以它更容易助阵。 –

+2

“但这段代码不工作”是什么意思? –

+2

你确定你不想''和'在那个条件下放弃'和'吗? – melancia

回答

1

您只能测试来自$.isNumeric()的结果。

的方法处理任何类型的传递,甚至是空的,空的说法,等

$(function() { 
    $(".checkNumber").click(function() { 
     if (!$.isNumeric($("#number").val())) { 
      // Show error 
     } 
    }); 
}); 

来源:http://api.jquery.com/jQuery.isNumeric/

+0

谢谢http://stackoverflow.com/users/2191976/melanciauk – test

+0

不客气。 – melancia

0

的jsfiddle:http://jsfiddle.net/E9sFU/

HTML

<input type="text" id="quty1" /> 
<div class="errorMsg"></div> 

$('#quty1').keypress(function (e) { 
    //if the letter is not digit then display error and don't type anything 
    if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { 
     //display error messag 
     $(".errorMsg").html("Only numbers are allowed."); 
     return false; 
    } else { 
     $(".errorMsg").html(""); 
    } 
}); 
+1

你会怎么做关于指数像4e7(4提高到7) –

+0

好吧,OP没有提到类似的东西.. –

-1

更改& &与||并将该值转换为整数或浮点数以进行比较。

$(function() { 
    $(".checkNumber").click(function() { 
     var number = $("#number").val(); 
     if (!$.isNumeric(number) || parseInt(number) < 1) { // or cast to float with parseFloat(number) 
      // show errors 
     } 
    }); 
}); 
+0

因为当只是整数被认为是数字? – melancia

+0

@MelanciaUK:你说得对,我编辑了我的答案。你有没有投下这个? – jazZRo