2

jqueryで非負の数をチェックしようとしています。それ以外の場合、関数は機能しますが、ゼロおよび非負の数の場合は機能しません。これが私のサンプルフィドルです。
サンプルフィドル
私の間違いを見つけることができません。ありがとう。

4

4 に答える 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 に答える