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

时间:2018-02-02 12:33:46

标签: javascript jquery html

剧本:

<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定义为:

<p oninput="calculate()" id="f6" class="change change-btc-usd-cmc input-group-addon"><i>Indlæser</i></p>

使用以下jquery后端:

   $.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:

<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. "   />

更改定义为:

    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,它们都以数字结尾,所以它不应该是一个问题,因为parsefloat与jQuery后端一起使用,但它返回NaN。当编写两个oncalculate文本输入时,它可以完美地工作。

1 个答案:

答案 0 :(得分:4)

嗯,f6是一个p元素,没有任何价值。因此,f6的值为undefinedundefined * 1 === NaN

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