我想总结一些价格并将它们放入所有价格输入中,但功能并不是对数字求和,而是将数字放在一起。是否有任何代码将字符串更改为数字?
<html>
<label class="fa">ext modeling price</label>
<input type="number" class="form-control" onchange="allPrc();" id="model-
ext-price" placeholder= "0" ></input>
<br>
<label class="fa">int modeling price</label>
<input type="number" class="form-control" onchange="allPrc();" id="model-
int-price" placeholder= "0" ></input>
<hr class="hrline">
<label class="fa"> ext renderign price</label>
<input type="number" class="form-control" onchange="allPrc();" id="render-
ext-price" placeholder= "0" ></input>
<br>
<label class="fa">int rendering price </label>
<input type="number" class="form-control" onchange="allPrc();" id="render-
int-price" placeholder= "0" y></input>
<hr class="hrline">
<label class="fa">pproduction price </label>
<input type="number" class="form-control" onchange="allPrc();"
id="pproduction-price" placeholder= "0" y></input>
<hr class="hrline">
<label class="fa"> All price </label>
<input type="number" class="form-control" id="All-price" placeholder= "0"
readonly></input>
</html>
<script>
document.getElementById ('model-ext-price').onchange = function() {allPrc();};
document.getElementById ('model-int-price').onchange = function() {allPrc();};
document.getElementById ('render-ext-price').onchange = function() {allPrc();};
document.getElementById ('render-int-price').onchange = function() {allPrc();};
document.getElementById ('pproduction-price').onchange = function() {allPrc();};
var allPrc = function () {
var Totalextmdl = document.getElementById ('model-ext-price').value,
Totalintmdl = document.getElementById ('model-int-price').value,
Totalextrndr = document.getElementById ('render-ext-price').value,
Totalintrndr = document.getElementById ('render-int-price').value,
Totalpp = document.getElementById ('pproduction-price').value,
TotalPrc = 0;
document.getElementById('All-price').value = TotalPrc;
var TotalPrc = Totalextmdl + Totalintmdl + Totalextrndr + Totalintrndr +
Totalpp;
document.getElementById('All-price').value = (TotalPrc>0 &&
TotalPrc!=='NaN')?TotalPrc:0;
};
</script>
答案 0 :(得分:0)
有可能在var TotalPrc = Totalextmdl + Totalintmdl + Totalextrndr + Totalintrndr + Totalpp;
语句中,Totalextmdl
,Totalintmdl
,Totalextrndr
,Totalpp
值被读取为字符串。
您可以将+
符号放在这些变量前面,将其值转换为数字:
var TotalPrc = (+Totalextmdl) + (+Totalintmdl) + (+Totalextrndr) + (+Totalintrndr) + (+Totalpp);
答案 1 :(得分:0)
我认为您正在寻找parseInt
或parseFloat
(取决于您是否拥有整数)
例如:parseInt(document.getElementById ('model-ext-price').value)
或parseFloat(document.getElementById ('model-ext-price').value)
这可以确保您获得一个数字,而不是一个字符串。如果parseInt(或parseFloat)失败,可能想写其他逻辑来做某事。
https://www.w3schools.com/jsref/jsref_parseint.asp https://www.w3schools.com/jsref/jsref_parsefloat.asp
答案 2 :(得分:0)
element.value
会返回字符串。你想要数字。转换字段值的一种简单方法是在第一次获取时使用一元+
,如下所示:
var Totalextmdl = +document.getElementById('model-ext-price').value,
Totalintmdl = +document.getElementById('model-int-price').value,
Totalextrndr = +document.getElementById('render-ext-price').value,
Totalintrndr = +document.getElementById('render-int-price').value,
Totalpp = +document.getElementById('pproduction-price').value,
TotalPrc = 0;
答案 3 :(得分:0)
将字符串值转换为数字:
var allPrc = function () {
var ids =['model-ext-price','model-int-price',
'render-ext-price', 'render-int-price', 'pproduction-price'];
var TotalPrice = 0;
ids.forEach(funciton(id) {
totalPrice+=Number(document.getElementById(id).value;
});
return TotalPrice;
}
document.getElementById('All-price').value = allPrc;