javascript - 使用 Javascript 对 "Form"进行简单除法

标签 javascript

我正在尝试做一些我认为非常简单的事情,但显然我在做这件事时遇到了困难。

我的页面上有两个输入字段(“销售额”、“费用”)。第三个输入字段应该是“费用”除以“销售额”的值。

一个警告:我不想要一个他们必须“提交”的标准表格。我只是希望它自动更新该值(用户付出的努力最少)。

<script type="text/javascript">
    var sale = document.getElementById('sales').value;
    var fee = document.getElementById('fees').value;
    document.getElementById('rate').value = sale / fee;
</script>

<p>Total purchases: <input type="text" name="sales" id="sales" /></p>
<p>Total fees: <input type="text" name="fees" id="fees" /></p>
<p>Your net rate is: <input type="text" name="rate" id="rate" /></p>

我假设有某种方法可以设置 id="rate"value="..." 并且我可能有偏差我的尝试,但我希望有人能够帮助我解决这个问题。

谢谢!

最佳答案

您可以在 blur 事件或类似事件上设置此功能,但您也可以按一定时间间隔运行它以自动更新。将 setInterval 调用中的 100 更改为更大的数字,以查看刷新需要一些时间。

您在页面加载时运行过一次的 JavaScript,就是这样。

我还添加了一些基本的错误检查。

function calculateNetRate(){
  
  var sale = document.getElementById('sales').value;
    var fee = document.getElementById('fees').value;
  sale = isNaN(sale) ? 0 : sale;
  fee = isNaN(fee) ? 0 : fee;
  var netRate = fee > 0 ? sale / fee : NaN;
    document.getElementById('rate').value = isNaN(netRate) ? 0 : netRate;
  
}

setInterval(function(){
  
  calculateNetRate();
  }, 100);
<p>Total purchases: <input type="text" name="sales" id="sales" /></p>
<p>Total fees: <input type="text" name="fees" id="fees" /></p>
<p>Your net rate is: <input type="text" name="rate" id="rate" /></p>

关于javascript - 使用 Javascript 对 "Form"进行简单除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29638193/

相关文章:

javascript - 在 sinon.js 中 stub 和/或模拟一个类?

javascript - 如何处理浏览器中按钮的事件

javascript - 如何让一些代码点表情符号值发挥作用

javascript - 值未传递给触发更改事件的函数,自动完成 jquery

javascript - 从控制台运行的脚本但从 Bookmarklet 打印变量?

javascript - jQuery UI 1.9 Spinner 对话框中断旋转导致死循环

javascript - 我可以在react中删除props吗

javascript - 如何选择第一个可见的 jquery 选项卡

javascript - 在另一个函数的参数中捕获函数中的错误

javascript - 可以使用带有 json 回调的 html5 视频标签吗?