我创建了一个比特币(BTC)到加拿大元(CAD)转换器,它使用来自不同站点的当前价格,现在我试图限制BTC/CAD输入的可接受值,但它不起作用。我想设定的限制是2到99.99美元的CAD和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>发布于 2017-02-09 22:05:02
如果它正常工作,您的脚本没有将输入值传递给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()中。
新html <input id="cadc" type="text" onchange="cadCheck(this)">CAD</input>
发布于 2017-02-09 22:14:12
不想成为“只使用这个”的人,但是货币兑换是一个常见的,解决了的问题,有很多很好的解决方案。
一个好的例子是money.js
在研究小提琴解决方案,但保罗·艾伦的作品很好。
https://stackoverflow.com/questions/42147078
复制相似问题