Javascript求和字段错误NaN


Javascript Sum Fields Error NaN

不管我在输入字段中写了什么,即使从页面加载中我也只得到NaN

知道为什么吗?我需要按价格计算数量并给出结果,这是代码。我现在将显示代码

    <form action="?F=save-sale" method="post" name="venta">
<table class="table-global">
      <tr>
        <td class="table-global-td-title">Cantidad
         </td>
        <td class="table-global-td-title">Precio venta</td>
        <td class="table-global-td-title">Vendedor</td>
        <td class="table-global-td-title">Documento</td>
        <td class="table-global-td-title">M&eacute;todo de pago</td>
        <td class="table-global-td-title">Suma total</td>
        <td class="table-global-td-title"></td>
        </tr>
      <tr>
        <td class="table-global-td-subtitle"><input type="number" class="input-global-100" name="cantidad" id="cantidad">          </td>
          <td class="table-global-td-subtitle"><input type="number" class="input-global-100" name="venta" id="venta" value="0"></td>
           <td class="table-global-td-subtitle"> 
           <select style="text-transform:capitalize" class="select-global-120" name="vendedor" id="vendedor">
  <option value="" selected>Seleccionar</option>
  <option value="001">001</option>
</select>          </td>
        <td class="table-global-td-subtitle"> <select class="select-global-132" name="comprobante" id="comprobante">

          <option value="Boleta" selected>Boleta</option>        
          <option value="Factura">Factura</option>

          </select>        </td>
        <td class="table-global-td-subtitle"><select class="select-global-120" name="metodo" id="metodo" >
          <option value="Transferencia">Transferencia</option>
          <option value="Efectivo" selected>Efectivo</option>
          <option value="Cheque">Cheque</option>
          <option value="Transbank">Transbank</option>

        </select></td>
        <td class="table-global-td-subtitle">
          <input type="text" class="input-global-total-100" name="ventatotal" id="ventatotal" readonly value="0" />        </td>
        <td class="table-global-td-subtitle">
        <input class="submit-global-120" type="submit" value="Realizar la venta" /></td>
      </tr>
      </table>
<script>
var aacosto    = document.getElementsByName('costo')[0];
var aacostototal = document.getElementsByName('costototal')[0];
var aaventa     = document.getElementsByName('venta')[0];
var aaventatotal    = document.getElementsByName('ventatotal')[0];
var aacantidad   = document.getElementsByName('cantidad')[0];
var aaganancia   = document.getElementsByName('ganancia')[0];
var aagananciatotal   = document.getElementsByName('gananciatotal')[0];
function updateInput() {
aaventatotal.value = parseFloat(aaventa.value) * parseFloat(aacantidad.value);
}
aaventa.addEventListener('keyup', updateInput);
aaventatotal.addEventListener('change', updateInput);
aacantidad.addEventListener('keyup', updateInput);
updateInput();
</script>
</form>

这是一个Fiddle,所以你们可以看到它的工作

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

在计算乘积之前只需满足此条件if (aaventa.value && aacantidad.value)。它确保值不是。其他一切都很好。

var aaventa = document.getElementsByName('venta')[0];
var aaventatotal = document.getElementsByName('ventatotal')[0];
var aacantidad = document.getElementsByName('cantidad')[0];
function updateInput() {
  if (aaventa.value && aacantidad.value)
    aaventatotal.value = parseFloat(aaventa.value) * parseFloat(aacantidad.value);
  else
    aaventatotal.value = 0;
}
aaventa.addEventListener('keyup', updateInput);
aaventatotal.addEventListener('change', updateInput);
aacantidad.addEventListener('keyup', updateInput);
updateInput();
<input name="venta">
<input name="cantidad">
<input name="ventatotal">

<input id="venta">
<input id="cantidad">
<input id="ventatotal">

使用jQuery

$('#venta').change(function(){ updateInput() ;});
$('#cantidad').change(function(){ updateInput() ;});
$('#ventatotal').change(function(){ updateInput() ;});