2015-09-23 6 views
-1

Когда я нажимаю на иконку плюс,Значения, добавленными вместо того, чтобы быть рассчитаны

от второго щелчка года, цена в настоящее время, количество и цена рассчитывается неправильно

Это мой код

$(document).on('click', '.icon-plus', function(event) 
{ 
    var idval = $(this).parents('.lastItm_Wrap').first().attr('id'); 
    var currentval = $(this).closest('div').find('.QtyInput').attr('value'); 
    if (currentval === '') 
    { 
    currentval = 0; 
    } 
    var currentQuantity = parseInt(currentval + 1); 
    if (currentQuantity == 0) 
    { 
    currentQuantity = 1; 
    } 
    var currentSellprice = parseFloat($("#" + idval).find('.prd_title h3').data('sellprice')); 
    $(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text(parseFloat(currentSellprice * currentQuantity).toFixed(2)); 

    $(this).closest('div').find('.QtyInput').attr('value', currentQuantity); 
    $(this).closest('div').find('.QtyInput').val(currentQuantity); 
    event.stopImmediatePropagation(); 
    event.preventDefault(); 
    return false; 
}); 

Не могли бы вы сообщить мне, как это решить?

http://jsfiddle.net/bxbnkq64/8/

+0

Извините за беспокойство, добавив еще условие с parseInt, else { currentval = parseInt (currentval); }. – Pawan

+0

исправлено: http://jsfiddle.net/bxbnkq64/9/ – Amit

ответ

0

При вычислении currentQuantity вы conctenate две строки ("1" и "1", "11" и "1" и т.д.). Измените код на это.

var currentQuantity = parseInt(currentval) + 1; 

Должно работать.

0

вы должны поставить +1 вне ParseInt иначе он разбирает 1 + 1 в виде строки ... это будет 11 :)

см http://jsfiddle.net/bxbnkq64/10/

$(document).on('click', '.icon-plus', function(event) 
{ 
    var idval = $(this).parents('.lastItm_Wrap').first().attr('id'); 
    var currentval = $(this).closest('div').find('.QtyInput').attr('value'); 
    if (currentval === '') 
    { 
    currentval = 0; 
    } 
    var currentQuantity = parseInt(currentval)+ 1; 
    if (currentQuantity == 0) 
    { 
    currentQuantity = 1; 
    } 
    var currentSellprice = parseFloat($("#" + idval).find('.prd_title h3').data('sellprice')); 
    $(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text(parseFloat(currentSellprice * currentQuantity).toFixed(2)); 

    $(this).closest('div').find('.QtyInput').attr('value', currentQuantity); 
    $(this).closest('div').find('.QtyInput').val(currentQuantity); 
    event.stopImmediatePropagation(); 
    event.preventDefault(); 
    return false; 
});