jqueryで非負の数をチェックしようとしています。それ以外の場合、関数は機能しますが、ゼロおよび非負の数の場合は機能しません。これが私のサンプルフィドルです。
サンプルフィドル
私の間違いを見つけることができません。ありがとう。
質問する
4441 次
4 に答える
1
デモはどうですか(注:エラーメッセージは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 に答える