我尝试在 jquery 中检查非负数。如果不是数字,我的函数可以工作,但对于零和非负数,它不起作用。这是我的示例小提琴。
小提琴示例
无法找到我的错误。谢谢。
问问题
4441 次
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 回答