Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript将来自不同输入的值相乘以得到总数?_Javascript_Function_Shopping Cart_Multiplication - Fatal编程技术网

如何使用Javascript将来自不同输入的值相乘以得到总数?

如何使用Javascript将来自不同输入的值相乘以得到总数?,javascript,function,shopping-cart,multiplication,Javascript,Function,Shopping Cart,Multiplication,我正在尝试做一个购物车,我想总金额自动改变后,数量是输入(总价格乘以数量)。我正在尝试使用Javascript来实现这一点,但我似乎无法得到它,因为它将出现null,并且在它显示NaN之前 PS:这是一个控制台日志,目前只是为了看看它是否工作,但我需要它进入总输入标签 HTML: 试试这个: 函数calcTotal(){ //删除$sign并解析浮动价格 var price=parseFloat(document.getElementById(“price”).value.substr(1))

我正在尝试做一个购物车,我想总金额自动改变后,数量是输入(总价格乘以数量)。我正在尝试使用Javascript来实现这一点,但我似乎无法得到它,因为它将出现null,并且在它显示NaN之前

PS:这是一个控制台日志,目前只是为了看看它是否工作,但我需要它进入总输入标签

HTML:

试试这个:

函数calcTotal(){
//删除$sign并解析浮动价格
var price=parseFloat(document.getElementById(“price”).value.substr(1));
//解析浮点量
var quantity=parseFloat(document.getElementById(“数量”).value);
var总额=价格*数量;
//将计算值传递给id为total的输入
document.getElementById(“总计”).value=“$”+总计;
}

试试这个:

函数calcTotal(){
//删除$sign并解析浮动价格
var price=parseFloat(document.getElementById(“price”).value.substr(1));
//解析浮点量
var quantity=parseFloat(document.getElementById(“数量”).value);
var总额=价格*数量;
//将计算值传递给id为total的输入
document.getElementById(“总计”).value=“$”+总计;
}

任何涉及字符串的操作都会返回
NaN
,但是您应该 强制输入值为
Number

function calcTotal() {
  var price = document.getElementById("price").value;
  var quantity = document.getElementById("quantity").value;
  var total =Number(price) * Number(quantity);
  console.log(total);
}
使用
Number
vs
parseFloat

所以只要你有标准的数字输入,就没有区别。但是,如果输入以数字开头,然后包含其他字符,则parseFloat会从字符串中截断数字,而number会给出NaN(不是数字):


任何涉及字符串的操作都会返回
NaN
,但是您应该 强制输入值为
Number

function calcTotal() {
  var price = document.getElementById("price").value;
  var quantity = document.getElementById("quantity").value;
  var total =Number(price) * Number(quantity);
  console.log(total);
}
使用
Number
vs
parseFloat

所以只要你有标准的数字输入,就没有区别。但是,如果输入以数字开头,然后包含其他字符,则parseFloat会从字符串中截断数字,而number会给出NaN(不是数字):

您对
“$18.95”*“1”有什么期望?您应该是数字相乘,而不是字符串相乘。您对
“$18.95”*“1”
有什么期望?应该是数字相乘,而不是字符串相乘。
function calcTotal() {
  var price = document.getElementById("price").value;
  var quantity = document.getElementById("quantity").value;
  var total =Number(price) * Number(quantity);
  console.log(total);
}
parseFloat('1x'); // => 1
Number('1x'); // => NaN