Как добавить предыдущий баланс к текущему, используя javascript - PullRequest
1 голос
/ 11 марта 2020

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>

Этот остаток строки является балансом последней транзакции пациента. Это эхо-баланс, чтобы увидеть / проверить оставшийся баланс пациента.

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; 

    }
 }

});

Моя проблема в том, что я хочу, если пациент снова совершает операцию, и у пациента будет другой баланс, который я хочу для добавления предыдущего баланса и текущего баланса.

Например,

Пациент имеет 100 долларов на предыдущем балансе в последней транзакции. Затем пациент снова совершит транзакцию, и общая сумма транзакции будет равна 200 долларов, то пациент платит 50 долларов, так что остаток составляет 150 долларов. Тогда общий баланс этого пациента станет 250 долларов из-за 100 долларов предыдущего, а затем 150 долларов для текущего ..

1 Ответ

1 голос
/ 11 марта 2020

Две проблемы в вашем коде:

  • isInputNumber привязан к #edit_payment, поэтому обратный вызов jQuery не будет работать правильно.
  • Если вы хотите уменьшить баланс на каждом keyup событии, вы должны хранить первый баланс ($row['balance']) где-то перед слушателями событий.

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...