php
<div class="col-md-2">
Amount<input type="text" name="edit_amount" id="edit_amount" class="form-control" onkeypress="isInputNumber(event)"/>
</div>
<div class="col-md-2">
Cash Tendered</strong>: <input type="text" name="edit_payment" id="edit_payment" class="form-control"onkeypress="isInputNumber(event)"/>
</div>
<div class="col-md-2">
Change </strong>: <input type="text" name="edit_change" id="edit_change"readonly="" class="form-control"/>
</div>
<div class="col-md-2">
Balance</strong>: <input type="text" name="edit_balance" id="edit_balance"readonly="" class="form-control" value="<?php echo $row['balance'] ?>" />
</div>
Este equilibrio fila es el equilibrio de la última transacción del paciente. Este equilibrio de eco para ver / comprobar el saldo restante del paciente.
javascript
$(function() {
$("#edit_payment").on("keydown keyup", sum);
function sum() {
var textValue1 = Number.parseFloat(document.getElementById('edit_payment').value);
var textValue2 = Number.parseFloat(document.getElementById('edit_amount').value);
if (textValue1>=textValue2) {
document.getElementById('edit_balance').value = "0";
document.getElementById('edit_change').value = textValue1 - textValue2;
}
else if(textValue1<textValue2){
document.getElementById('edit_change').value = "0";
document.getElementById('edit_balance').value = textValue2 - textValue1;
}
}
});
Mi problema es que quiero si el paciente realiza transacciones de nuevo y el paciente tendrá otro balance Quiero añadir el saldo anterior y el saldo actual.
Por ejemplo,
El paciente tiene $ 100 en el saldo anterior en la última transacción A continuación, el paciente va a realizar transacciones de nuevo y el importe total de la transacción es de $ 200, entonces el paciente paga $ 50, de modo que el saldo es de $ 150. A continuación, el saldo total de ese paciente es se convertirá en $ 250 por $ 100 de la anterior, entonces $ 150 para la corriente ..
Dos problemas en su código:
isInputNumber
estaba destinada a#edit_payment
lo que la devolución de llamada jQuery no funcionará correctamente.- Si desea reducir el equilibrio en cada
keyup
caso, usted tiene que almacenar el primer balance ($row['balance']
en algún lugar) antes de los detectores de eventos.
const parseNumber = function(value) {
value = parseFloat(value);
if (isNaN(value)) {
value = 0;
}
return value;
}
const balanceInput = $("#edit_balance");
const paymentInput = $("#edit_payment");
const balance = parseNumber(balanceInput.val());
$("#edit_payment").on("keyup", function() {
let tmpBalance = balance;
let amount = parseNumber(paymentInput.val());
if (tmpBalance >= amount) {
tmpBalance = tmpBalance - amount;
}
balanceInput.val(tmpBalance);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-md-2">
Amount<input type="text" name="edit_amount" id="edit_amount" class="form-control" />
</div>
<div class="col-md-2">
Cash Tendered</strong>: <input type="text" name="edit_payment" id="edit_payment" class="form-control"/>
</div>
<div class="col-md-2">
Change </strong>: <input type="text" name="edit_change" id="edit_change"readonly="" class="form-control"/>
</div>
<div class="col-md-2">
Balance</strong>: <input type="text" name="edit_balance" id="edit_balance"readonly="" class="form-control" value="40" />
</div>