我创建了一个使用其他站点上的当前价格的比特币(BTC)转换为加拿大元(CAD)的转换器,现在我试图限制BTC / CAD输入可接受的值,但是它不起作用。
我想设置的上限是2美元到99.99美元的CAD和等同于max / min的BTC,但它不想工作...

小提琴:
https://jsfiddle.net/z735tswj/所有相关代码在html标签或下方

<input id="btcc" type="text" onkeyup="btcConvert()" onchange="btcCheck()">BTC</input>

<input id="cadc" type="text" onkeyup="cadConvert()" onchange="cadCheck()">CAD</input>
<br>
<br>

<script>
  function btcConvert() {
    var btc = document.getElementById("btcc").value;
    var btcCalc = btc * price;
    var btcCalc = btcCalc.toFixed(2);
    document.getElementById("cadc").value = btcCalc;
    btcCheck();
  }

  function cadConvert() {
    var cad = document.getElementById("cadc").value;
    var cadCalc = cad / price;
    var cadCalc = cadCalc.toFixed(8);
    document.getElementById("btcc").value = cadCalc;
    cadCheck();
  }

  function btcCheck() {
    if (btc.value < 0.001649) btc.value = 0.001649;
    if (btc.value > 0.082259) btc.value = 0.082259;
    btcConvert();
  }

  function cadCheck() {
    if (cad.value < 2) cad.value = 2;
    if (cad.value >= 100) cad.value = 99.99;
    cadConvert();
  }

</script>

最佳答案

一切正常,您的脚本未将输入值传递给cadCheck()

我刚刚进行了一些编辑以使其正常工作。 cadCheck()将在运行cadConvert()之前获取输入的值。

function cadCheck(input) {
 if (input.value < 2) input.value = 2;
 if (input.value >= 100) input.value = 99.99;
 cadConvert();
 }


我还取出了onkeyup="cadConvert(),因为您正在cadCheck()中调用它,并在this中添加了onchange="cadCheck()(“ this”是输入值)。

新的HTML <input id="cadc" type="text" onchange="cadCheck(this)">CAD</input>

这是我的代码https://jsfiddle.net/so7s9efr/

关于javascript - 货币转换器无法在定义的限制内工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42147078/

10-15 07:47