首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将parsefloat字符串与oncalculate输入相乘时返回NaN

将parsefloat字符串与oncalculate输入相乘时返回NaN
EN

Stack Overflow用户
提问于 2018-02-02 20:33:46
回答 2查看 123关注 0票数 0

脚本:

代码语言:javascript
复制
<script type="text/javascript"> function calculate() {
    var myBox1 = document.getElementById('f5').value;   
    var myBox2 = document.getElementById('f6').value;
    var result = document.getElementById('f8'); 
    var myResult = myBox1 * myBox2;
    result.value = myResult.toFixed(2);

}

F6定义为:

代码语言:javascript
复制
<p oninput="calculate()" id="f6" class="change change-btc-usd-cmc input-group-addon"><i>Indlæser</i></p>

使用以下jquery后端:

代码语言:javascript
复制
   $.getJSON( "https://api.coinmarketcap.com/v1/ticker/bitcoin/", function( data ) {
     $.getJSON("https://api.fixer.io/latest?base=USD", function (data2) {
  change['btc-usd-cmc'] = data[0]["price_usd"] * data2.rates["DKK"];
  $(".change-btc-usd-cmc").text(change['btc-usd-cmc']);
  $(".change-btc-usd-cmc").text(parseFloat(change['btc-usd-cmc']).toFixed(2));
  loader(false)
  updateData()          

})

f5的定义与html中的定义类似:

代码语言:javascript
复制
<input oninput="calculate()" type="text" class="form-control " id="f5" name="f5" value=""   placeholder="eks. 5000" 
data-rule-number="true" 
data-rule-min="999"  
data-rule-max="50000"  
data-rule-required="true" data-msg-required="Dette felt er krævet. "   />

更改的定义为:

代码语言:javascript
复制
    var change = {
    "usd-vef-dt": null,
    "btc-usd-cmc": null,
    "rai-usd-cmc": null,
    "eth-usd-cmc": null,
"btc-vef-lbtc": null,
"usd-vef-lbtc": null,


}

我不明白为什么它返回NaN,它们都以数字结尾,所以这应该不是问题,因为jQuery后端使用了parsefloat,但它返回NaN。当编写两个oncalculate文本输入时,它可以完美地工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-02 20:39:52

嗯,f6是一个p元素,它没有值..因此,对于f6,值是undefined,而undefined * 1 === NaN

小提琴示例:https://jsfiddle.net/q58zpuch/

票数 4
EN

Stack Overflow用户

发布于 2021-11-09 19:25:09

可以使用parseInt(variable)解析整数中的文本框值或文本区域值,也可以使用parseFloat(variable)解析浮点数中的值

var myBox1 = document.getElementById('f5'); var myBox2 = document.getElementById('f6'); var result = document.getElementById('f8'); var myResult = parseFloat(myBox1.value) * parseFloat(myBox2.value);

试试这个,它对我很有效。

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

https://stackoverflow.com/questions/48582805

复制
相关文章

相似问题

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