javascript - 根据每个输入字段的值填充总计值

标签 javascript

我想在提交表单之前自动计算并填充总计。总计将基于我的 5 个输入字段。

<input type="number" name="inspection_fee">
<input type="number" name="storage_fee">
<input type="number" name="local_fee">
<input type="number" name="cert_fee">
<input type="number" name="others_fee">

<input type="number" name="total_fee">

我知道如何以 php 方式执行此操作,就像在提交后放置变量然后完全像这样计算它。

<?php
$inspection_fee = $paymentSettings->inspection_fee;
$storage_fee = $paymentSettings->storage_fee;
$cert_fee = $paymentSettings->cert_fee;
$local_fee = $paymentSettings->local_fee;
$others_fee = $paymentSettings->others_fee;

$total_fee = $inspection_fee + $storage_fee + $cert_fee + $local_fee + $others_fee;
?>

但是在使用 javascript 提交之前我该如何填充总数呢?就像如果我更改检查费,总费用将根据总值(value)自动调整。 寻求帮助。 提前致谢。

最佳答案

  1. 将总输入字段设置为只读
  2. 创建一个函数来将所有输入相加并在 total_fee 中设置值(使用 Array.prototype.reduce 的好机会)
  3. 将您的函数绑定(bind)到输入 input 事件

const inputs = ['inspection_fee', 'storage_fee', 'local_fee', 'cert_fee', 'others_fee']
const total = document.querySelector('input[name="total_fee"]')

const sumTotal = () => {
  total.value = inputs.reduce((sum, input) =>
    sum += parseInt(document.querySelector(`input[name="${input}"]`).value || 0, 10), 0)
}

inputs.forEach(input => {
    document.querySelector(`input[name="${input}"]`).addEventListener('input', sumTotal, false)
})
<input type="number" name="inspection_fee">
<input type="number" name="storage_fee">
<input type="number" name="local_fee">
<input type="number" name="cert_fee">
<input type="number" name="others_fee">

<input type="number" name="total_fee" readonly>

关于javascript - 根据每个输入字段的值填充总计值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45852857/

相关文章:

javascript - 将数组呈现为 HTML 的最有效方法

javascript - 如何将两个 NodeList 对象连接成一个,避免重复

c# - 如何在 asp.net web 应用程序 (C#) 中制作倒数计时器?

javascript - 如何将确认对话框添加到 html5 表单的提交按钮?

javascript - 从视频创建的 Canvas 在保存时出现 "Tainted canvases may not be exported."错误

javascript - 用另一个覆盖 1 个外部样式表

javascript - 如何让两个 Pebbles 互相交谈。最好将 javascript 与 Pebble.js 一起使用,但也可以使用 PebbleKit sdk 或标准 C Pebble

javascript - 为什么在 alpha 动画之后图形在 IE 中有丑陋的黑色边框?

javascript - 将鼠标悬停在其他页面元素上时更改点样式

javascript - 从在线 Power BI 仪表板中抓取数据