首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算js中输入数据的问题

计算js中输入数据的问题
EN

Stack Overflow用户
提问于 2022-01-26 10:44:01
回答 2查看 86关注 0票数 1

嘿,我对js还比较陌生,我一直在尝试构建这个价格计算器,它应该输出两个字段的结果(不需要提交任何可能的内容),但是我很难计算输入的数据!有人能告诉我我做错了什么吗?如果可以用香草js做的话?提前感谢

代码语言:javascript
复制
// (should) calculate
const priceCalculator = (base, height) => {
    const outcome = (base * height) / 100; 
    return outcome;
}

// gets & stores base value
const getBase = function() {
    const base = document.getElementsByClassName('field')[0].value;
    console.log( base );
    return base;
}

// gets & stores height value
const getHeight = function() {
    const height = document.getElementsByClassName('field')[1].value;
    console.log( height );
    return height;
}

let result = priceCalculator(getBase, getHeight);

// result
document.getElementById('get-result').innerHTML += result;
代码语言:javascript
复制
<div class="calculator-wrapper">
    <form class="calculator" action="somewhere.html" method="get">
        <p>Base cm</p>
        <input type="number" class="field" id="base-field" value="" onblur="getBase()">
        <p>Height cm</p>
        <input type="number" class="field" id="height-field" value="" onblur="getHeight()">
        <h2>Your price is: <span id="get-result"></span>€</h2>
    </form>
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-26 11:00:28

因此,对于解决问题所需的内容来说,您拥有的内容过于复杂。您只需要有一个函数,您就可以调用任一字段的onblur (或者更好的是,对于用户来说,有一个按钮专门计算价格)。因此,在javascript中,用如下所示替换您拥有的内容:

代码语言:javascript
复制
function calculatePrice(){
  document.getElementById('get-result').innerHTML = parseInt(document.getElementsByClassName('field')[0].value) + parseInt(document.getElementsByClassName('field')[1].value);
}

在HTML中,只需将onBlur调用的内容更改为“calculatePrice()”即可。

这是一种方法,或者您可以将参数传递到函数中。

内置的parseInt()函数将接受文本输入(输入的缺省值),并将它们转换为整数,这样就不会将它们作为文本附加到一起。对于非整数也有parseFloat()。

票数 1
EN

Stack Overflow用户

发布于 2022-01-26 10:53:09

首先。您将始终从Formfield获得字符串值。为了计算,你需要数字,整数。

然后,您必须传递函数,而不是作用域变量名称。priceCalculator(getBase(), getHeight());

那就成功了!

代码语言:javascript
复制
// (should) calculate
const priceCalculator = (base, height) => {
    
    const outcome = (base * height) / 100; 
    return outcome;
}

// gets & stores base value
const getBase = function() {
    const base = document.getElementsByClassName('field')[0].value;
    console.log( base );
    return parseInt(base);
}

// gets & stores height value
const getHeight = function() {
    const height = document.getElementsByClassName('field')[1].value;    
    return parseInt(height);
}

let result = priceCalculator(getBase(), getHeight());

// result
document.getElementById('get-result').innerHTML += result;
代码语言:javascript
复制
<input class="field" value="2">
<input class="field" value="3">

<div id="get-result"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70862177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档