2016-05-07 2 views
-2

Ich nehme Wert von span-Tag und Textfeld und multipliziere sie, aber es funktioniert nicht richtig.wenn ich Browser dann überprüfe ich säen, dass Wert aus span-Tag und Textfeld ist in Ordnung, aber Multiplikationswert (Gesamtpreis), der NaN zeigt.Nicht Arbeit Multiplikation in jquery jedes Mal NaN zeigen

$("#addintocart").click(function() { 
     debugger; 
     var productid = $("#product_id").text(); 
     var cartid = $("#userid").text(); 
     var quentity = $("#txt_quentity").val(); 
     var price = $("#p_price").text(); 
     var totalprice =(quentity * price); 
     $.ajax({ 
      url: '/Product/AddInCart', 
      type: 'GET', 
      data: { cartid: cartid, productid: productid, quentity: quentity, totalprice: totalprice }, 
      contentType: 'application/json; charset=utf-8', 
      success: function (response) { 
       //your success code 
       // also count total 
       alert("Success"); 
       // Successnotify(); 

       }); 
      }, 
      error: function() { 
       alert("some error"); 
      } 

     }); 
    }) 
+0

Verwendung var total = parseFloat berücksichtigen (Menge) * parseFloat (Preis); oder parseInt gemäß Ihrer Anforderung – Poria

Antwort

0

Können Sie überprüfen

var totalprice =(Number(quentity) * Number(price)); 
0

Sie sind mit $ .text() Preis als String nehmen. Wenn Sie in JavaScript die Zahl mit einem String multiplizieren, erhalten Sie den Wert NaN. Versuchen Sie, Ihren Wert mit der Number() -Funktion zu übertragen.

0

Parsen Sie sie zu Zahlen.

  1. var totalprice = parseInt(quentity) * parsefloat(price);
  2. oder var totalprice = (~~quentity) * parseFloat(price);
0

Sie kehren Strings und müssen diese in Zahlen umzuwandeln.

Wenn Sie über eine standardmäßige numerische Eingabe verfügen, gibt es keinen Unterschied zwischen und Number. Wenn Sie Ihre Eingabe beginnt mit einer Zahl und enthält andere Zeichen parseFloat die Nummer aus der Zeichenfolge abschneidet, während Anzahl NaN gibt (keine Zahl):

parseFloat('23x'); // => 23 
Number('23x'); // => NaN 

Anzahl versteht auch Notation wie 23e5 (was 2300000)

eine andere Sache ist, dass Sie eine + verwenden können, und es wird sowohl wie Number

var totalprice = (Number(quentity) * Number(price)); 

var totalprice = (+quentity) * (+price); 

Hinweis verhalten übersetzen ‚023‘ zu Oktal, die 19 numeric (dezimal) ist

Beachten Sie, dass es etwas unklar ist, ob Ihre quentity Menge ist und wenn ja, Menge ist oft eine ganze Zahl und somit könnte man parseInt für diese Nummer