不管我在输入字段中写了什么,即使从页面加载中我也只得到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é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() ;});