admin管理员组

文章数量:1278910

I make a dynamic form, if i delete a row then in loop result is NaN of the deleted element i want when i delete element its 0 value pass not NaN. Like i delete 5th element when 1=5 it shows NaN. How to remove this error and instead 0 will be add in sum value, how i do?

$("body").on('change', '.quantity', function() {
    var that = $(this);
    if ($('#itemcounter').val()==""){
        $('#itemscounter').val("1");
        var counter=$('#itemscounter').val();
        var quantity=$('#quantity').val();
        var unitprice=$('#unitprice').val();
        var linetotal=quantity*unitprice;
        that.parent().find('.linetotal').val(linetotal) 
        $("#invoicetotalamount").val(+linetotal)
        var discount=document.getElementById('discount').value ;
        var discountamount= discount/100 * linetotal;
        var amount=linetotal-discountamount;
        $("#balanceamount").val(+amount);

    } else {            
        var counter=$('#itemscounter').val();
        var quantity=$('#quantity').val();
        var unitprice=$('#unitprice').val();
        var linetotal=quantity*unitprice;
        $('#linetotal').val(+linetotal);
        var sum=linetotal;

        for (i = 2; i <=counter; i++) {
            var quantity=parseFloat($('#quantity' + i).val());
            var unitprice=parseFloat($('#unitprice' + i).val());
            var linetotal=quantity*unitprice;
            $('#linetotal' + i).val(+linetotal);
            alert(sum);         
            sum=+sum +(+(linetotal));           
        }

        $("#invoicetotalamount").val(+sum); 
        var discount=document.getElementById('discount').value ;
        var discountamount= discount/100 * sum;
        var amount=sum-discountamount;
        $("#balanceamount").val(+amount);
    }
});

I make a dynamic form, if i delete a row then in loop result is NaN of the deleted element i want when i delete element its 0 value pass not NaN. Like i delete 5th element when 1=5 it shows NaN. How to remove this error and instead 0 will be add in sum value, how i do?

$("body").on('change', '.quantity', function() {
    var that = $(this);
    if ($('#itemcounter').val()==""){
        $('#itemscounter').val("1");
        var counter=$('#itemscounter').val();
        var quantity=$('#quantity').val();
        var unitprice=$('#unitprice').val();
        var linetotal=quantity*unitprice;
        that.parent().find('.linetotal').val(linetotal) 
        $("#invoicetotalamount").val(+linetotal)
        var discount=document.getElementById('discount').value ;
        var discountamount= discount/100 * linetotal;
        var amount=linetotal-discountamount;
        $("#balanceamount").val(+amount);

    } else {            
        var counter=$('#itemscounter').val();
        var quantity=$('#quantity').val();
        var unitprice=$('#unitprice').val();
        var linetotal=quantity*unitprice;
        $('#linetotal').val(+linetotal);
        var sum=linetotal;

        for (i = 2; i <=counter; i++) {
            var quantity=parseFloat($('#quantity' + i).val());
            var unitprice=parseFloat($('#unitprice' + i).val());
            var linetotal=quantity*unitprice;
            $('#linetotal' + i).val(+linetotal);
            alert(sum);         
            sum=+sum +(+(linetotal));           
        }

        $("#invoicetotalamount").val(+sum); 
        var discount=document.getElementById('discount').value ;
        var discountamount= discount/100 * sum;
        var amount=sum-discountamount;
        $("#balanceamount").val(+amount);
    }
});
Share Improve this question edited Oct 10, 2013 at 13:57 Panos Bariamis 4,6536 gold badges39 silver badges62 bronze badges asked Oct 10, 2013 at 13:23 Muhammad ArifMuhammad Arif 1,0223 gold badges23 silver badges59 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 8

Check the value if its a number like this:

var quantity=parseFloat($('#quantity' + i).val());    
if(isNaN(quantity)){
    quantity=0;
}

you can check it with if else loop for dynamic data:

var str_val = $('#itemscounter').val();

if(str_val == NaN){
   str_val =0;           //use str_val at the place you want
   alert(str_val);
}

You can check to see if it's NaN

var quantity = !isNaN($('#quantity' + i).val()) ? parseFloat($('#quantity' + i).val(), 2) : 0;

本文标签: javascripthow to remove NaN from field value and show valueStack Overflow