【问题标题】:HTML Form javascript sum total taxesHTML 表单 javascript 总税款
【发布时间】:2015-06-19 17:23:58
【问题描述】:

我有一个非常好的工作表格,几乎一切都在工作。但我需要计算和自动填写总税款。代码如下:

<table class="tableventa">
  <tr>
    <td style="width:200px;"></td>
    <td valign="top" style="width:900px;"><table class="table900">
      <tr>
        <td class="header150">Default unit price</td>
        <td class="header150">Type of sell</td>
        <td class="header150">Apply Taxes?</td>
        <td class="header150">Apply Discount?</td>
        <td class="header150">Quantity</td>
        </tr>
      <tr>
        <td class="header150small"><input type="text" class="input140" name="neto" id="neto" readonly value="1000"></td>
        <td class="header150small">

        <select class="select146" name="tipo" id="tipo">
  <option value="Simple" selected>Without Invoice</option>
  <option value="Boleta">Invoice 1</option>
   <option value="Factura">Invoice 2</option>
   </select>

   </td>
        <td class="header150small"><select class="select146" name="iva" id="iva">
  <option value="0" selected>Tax Free</option>
  <option value="19">YES 19%</option>

   </select></td>
        <td class="header150small">
         <select class="select146" name="descuento" id="descuento">
  <option value="0" selected>No Discount</option>
  <option value="2">2% Discount</option>
  <option value="3">3% Discount</option>
  <option value="5">5% Discount</option>
  <option value="8">8% Discount</option>
  <option value="10">10% Discount</option>
  <option value="15">15% Discount</option>
  <option value="20">20% Discount</option>
  <option value="30">30% Discount</option>
   <option value="50">50% Discount</option>

   </select>
   </td>
        <td class="header150small"><input type="text" class="input140" name="cantidad" id="cantidad" value="1"></td>
        </tr>
      <tr>
        <td class="header150">Price after discount</td>
        <td class="header150">Tax per unit</td>
        <td class="header150">Subtotal per unit</td>
        <td class="header150">Total Taxes</td>
        <td class="header150">Total to Pay</td>
        </tr>
      <tr>
        <td class="header150small"><input type="text" class="input140" name="preciodesc" id="preciodesc" readonly value="1000"></td>
   <td class="header150small"><input type="text" class="input140" name="ivaunitario" id="ivaunitario" readonly value="0"></td>
        <td class="header150small"><input type="text" class="input140" name="subtotal" id="subtotal" readonly value="1000"></td>
        <td class="header150small"><input type="text" class="input140" name="ivatotal" id="ivatotal" readonly value="0"></td>
        <td class="header150small"><input type="text" class="input140" name="total" id="total" readonly value="1000"></td>
        </tr>
      <tr>
        <td class="header150small">&nbsp;</td>
        <td class="header150small">&nbsp;</td>
        <td class="header150">Invlice Number</td>
        <td class="header150">&nbsp;</td>
        <td class="header150small">&nbsp;</td>
        </tr>
      <tr>
        <td class="header150small">&nbsp;</td>
        <td class="header150small">&nbsp;</td>
        <td class="header150small"><input type="text" class="input140" name="documento" id="documento" value=""></td>
        <td class="header150small"><input class="someter150" type="reset" value="Reset"></td>
        <td class="header150small"><input class="someter150" type="button" value="Sell now" onClick="document.productos.submit();"></td>
        </tr>
      </table></td>
  </tr>
</table>

<script>
var taxes    = document.getElementsByName('iva')[0];
var discount = document.getElementsByName('descuento')[0];
var cost     = document.getElementsByName('neto')[0];
var price    = document.getElementsByName('preciodesc')[0];
var ttaxes   = document.getElementsByName('ivaunitario')[0];
var total    = document.getElementsByName('subtotal')[0];
var quantity = document.getElementsByName('cantidad')[0];
var ttp      = document.getElementsByName('total')[0];

function updateInput() {
  price.value = cost.value - (cost.value * (discount.value / 100));
  ttaxes.value = (price.value * (taxes.value / 100));
  var sum = parseFloat(price.value) + parseFloat(ttaxes.value);
  total.value = sum.toFixed(0);
  ttp.value = sum.toFixed(0) * quantity.value;
}

taxes.addEventListener('change', updateInput);
discount.addEventListener('change', updateInput);
cost.addEventListener('change', updateInput);
cost.addEventListener('keyup', updateInput);
quantity.addEventListener('keyup', updateInput);

</script>
</form>

这是一个演示小提琴

https://fiddle.jshell.net/v6spxoqv/3/

这是我需要的图片

【问题讨论】:

  • 无法看到您在此处提供的小提琴和图片
  • 小提琴链接现在正确仍然看不到图像
  • 我不知道为什么不工作,但功能已经完成,所有功能都在工作,但不是每个 uni * 数量的税收总和,所以它可以计算总税收
  • 你能写出你需要的代码吗?如果你遇到困难,我们可以帮助你,而不是要求为你完成:)。
  • 我看不到您在哪里更新该字段;你更新了ivaunitario,但对ivatotal什么都不做。

标签: javascript html forms


【解决方案1】:

我认为声明变量“Total Taxes”是必需的,我认为它被称为“ivatotal”,所以(它在其他变量旁边):

var ivatot   = document.getElementsByName('ivatotal')[0];

在“updateInput”函数中执行操作后(已经包含的操作结束):

ivatot.value = parseFloat(ttaxes.value) * parseFloat(quantity.value);

函数“tipo_cambio”:

function tipo_cambio () {
var tipo = document.getElementsByName('tipo')[0];
if ( tipo.value == "Simple" )
     taxes.selectedIndex = 0;
else taxes.selectedIndex = 1;
updateInput();
}

必须从此选择调用上一个函数:

<select class="select146" name="tipo" id="tipo" onchange="tipo_cambio()">

【讨论】:

  • 我想会更好var ivatot = document.getElementById('ivatotal');
  • Acabo de actualizar la respuesta, al final aparece la función。 Por cierto, qué te parecería eliminar algunos comentarios innecesarios, para que no se acumulen muchos。
  • 更新了代码和选择表单自动更改工作但如果我选择boleta或factura并且IVA更改为19%,它仅适用于选择菜单但它不会将IVA应用于impuesto unitario。只有 onchange 有效,但不自动填充 iva
  • 实际情况。 Todo lo que hay que hacer es invocar "updateInput" al final de ''tipo_cambio". Fíjate en la respuesta y lo aplicas.
【解决方案2】:

您尚未在 Javascript 代码中设置总计字段的值。

ivatot.value = (ttaxes.value * quantity.value);

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2019-03-28
    • 2015-09-04
    • 2013-06-26
    相关资源
    最近更新 更多