2012-02-21 3 views
1

Я использую Jquery.Ajax и хочу сделать некоторое дополнение с ответом ajax и предопределенной переменной. Мой код выглядит следующим образом -JQuery Simple Addition Issue

success: function(response) 
{ 
    $('#net_amount').html("$"+(credit+response)); 
} 

Предполагая, что 'ответ', как 10 и 'кредит' как 20, она печатает 2010. Я хочу, чтобы это было 30 (20 + 30).

Что мне делать?

ответ

3

Поскольку + используется для конкатенации в javascript, а также для добавления, вам необходимо убедиться, что тип переменных является числовым, а не строкой.

Ваши варианты предназначены для использования parseInt() и parseFloat(). Я бы предложил последний, поскольку вы имеете дело с денежными ценностями в вашем примере.

success: function(response) { 
    $('#net_amount').html("$" + (parseFloat(credit) + parseFloat(response))); 
} 
+0

спасибо, что сработало. – skos

+0

@confused_developer Рад помочь. –

+0

+1 для parseFloat() –

2

Все, что вам нужно будет сделать, это разобрать значение в целое первым следующим образом:

$('#net_amount').html("$" + (parseInt(credit) + parseInt(response)));

0

Отклик или кредит рассматривается как строка. (вероятно, ответ).

success: function(response) 
{ 
    $('#net_amount').html("$"+(parseInt(credit)+parseInt(response))); 
} 

выше даст вам ожидаемый результат

0
use parseInt() or parseFloat() its convert into Integer format 

E;g: 

    var  credit = '30'; 
      response= '20'; 

    alert(typeof(response)); // string 
    alert("++++++++++++"+"$"+(parseInt(credit)+parseInt(response))+"++++++++++++"); 

if your value as in Integer, then u no need to go for parseInt(),parseFloat() 

    var credit = 30; 
      response= 20; 

    alert(typeof(response)); // // Integer 
    alert("++++++++++++"+"$"+((credit)+(response))+"++++++++++++"); 
+0

Меньше всего. Удобочитаемый. Ответ. Когда-либо. –

0

Другое решение состоит в умножении значения кредита и ответ на 1, в то же время вы добавляете их. Это заставит JS рассматривать их как числовые значения, а не строки.

success: function(response) 
{ 
    $('#net_amount').html("$"+((credit*1.00)+(response*1.00))); 
}