2

我尝试在 jquery 中检查非负数。如果不是数字,我的函数可以工作,但对于零和非负数,它不起作用。这是我的示例小提琴。
小提琴示例
无法找到我的错误。谢谢。

4

4 回答 4

1

DEMO怎么样(注意:错误消息是 OP 自己的)

$('#txtNumber').keyup(function() {
    var val = $(this).val(), error ="";
    $('#lblIntegerError').remove();
    if (isNaN(val)) error = "Value must be integer value."
    else if (parseInt(val,10) != val || val<= 0) error = "Value must be non negative number and greater than zero";
    else return true;
    $('#txtNumber').after('<label class="Error"  id="lblIntegerError"><br/>'+error+'</label>');
    return false;
});
于 2012-07-30T05:15:53.480 回答
0

这应该有效:

$('#txtNumber').keyup(function() {
    var num = $(this).val();
    num = new Number(num);
    if( !(num > 0) )
        $('#txtNumber').after('<label class="Error"  id="lblIntegerError"><br/>Value must be non negative number and greater than zero.</label>');
});

注意:如果第parseInt()一个字符是数字,则忽略无效字符,但Number()也会处理它们

于 2012-07-30T05:09:38.037 回答
0
$('#txtNumber').keyup(function() 
{
    $('#lblIntegerError').remove();
    if (!isNaN(new Number($('#txtNumber').val())))
    {
        if (parseInt($('#txtNumber').val()) <=0) 
        {
              $('#txtNumber').after('<label class="Error"  id="lblIntegerError"><br/>Value must be non negative number and greater than zero.</label>');
            return false;
        }


    }
    else
     {
          $('#txtNumber').after('<label class="Error"  id="lblIntegerError"><br/>Value must be integer value.</label>');
            return false;
        }
});​
于 2012-07-30T05:10:50.190 回答
0
if (isNaN($('#txtColumn').val() <= 0))

那是不对的..

您需要将值转换为整数,因为您正在检查整数

var intVal = parseInt($('#txtColumn').val(), 10);  // Or use Number()

if(!isNaN(intVal) || intVal <= 0){
   return false;
}
于 2012-07-30T04:56:27.463 回答