我从span标签和文本框中获取值并将它们相乘但它不能正常工作。当我检查浏览器然后我播下来自span标签和文本框的值很好但是显示NaN的乘法值(totalprice)。
$("#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 :(得分:0)
你可以检查
var totalprice =(Number(quentity) * Number(price));
答案 1 :(得分:0)
您使用$ .text()将价格作为字符串。在javascript中将数字与字符串相乘时,您将获得值NaN。尝试使用Number()函数转换值。
答案 2 :(得分:0)
将它们解析为数字。
var totalprice = parseInt(quentity) * parsefloat(price);
var totalprice = (~~quentity) * parseFloat(price);
答案 3 :(得分:0)
您正在返回字符串,需要将它们转换为数字。
如果您有标准数字输入,则parseFloat
和Number
之间没有区别。当您的输入以数字开头并包含其他字符时parseFloat
会截断字符串中的数字,而Number返回NaN
(不是数字):
parseFloat('23x'); // => 23
Number('23x'); // => NaN
Number也理解23e5
(2300000)
另一件事是你可以使用+
,它的行为就像Number
var totalprice = (Number(quentity) * Number(price));
var totalprice = (+quentity) * (+price);
注意两者都会翻译' 023'到八进制,这是19数字(十进制)
请注意,有些不清楚quentity
是否为数量,如果是,数量通常是整数,因此您可能会考虑parseInt
这个数字