Máy tính tiền boa là một máy tính tính tiền boa dựa trên tỷ lệ phần trăm của tổng hóa đơn.
Hãy xây dựng một bây giờ.
Bước 1 – HTML:
Chúng tôi tạo một biểu mẫu để nhập số tiền ưu tiên:
<!doctype html>
<html lang="en">
<head>
<title>Tip Calculator</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
</head>
<body class="bg-dark">
<div class="container">
<div class="row">
<div class="col-md-6 mx-auto">
<div class="card card-body text-center mt-5">
<h1 class="heading display-5 pb-3">Tip Calculator</h1>
<form id="tip-form">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">$</span>
<input type="number" class="form-control" id="billTotal" placeholder="Total Bill">
</div>
</div>
<div class="form-group tipPersent">
<div class="input-group">
<label for="">Tip:</label>
<input type="range" class="form-control" id="tipInput" value="0">
<span class="input-group-addon" id="tipOutput"></span>
</div>
</div>
</form>
<hr>
<!-- RESULTS -->
<div id="results" class="pt-4">
<h5>Results</h5>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Tip amount</span>
<input type="number" class="form-control" id="tipAmount" disabled>
</div>
</div>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Total Bill with Tip</span>
<input type="number" class="form-control" id="totalBillWithTip" disabled>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
</body>
</html>
Bước 2 – CSS:
Bạn thiết kế phong cách theo cách bạn muốn. Bạn cũng có thể sử dụng CSS để ẩn kết quả và hiển thị chúng thông qua JavaScript sau khi người dùng điền vào biểu mẫu:
#results {
display:none;
}
Bước 3: JavaScript:
Chúng tôi thêm một sự kiện onchange. Sự kiện onchange xảy ra khi người dùng tương tác với biểu mẫu.
Hành động này sẽ thực thi một hàm tính toán số tiền hóa đơn cuối cùng dựa trên tiền boa phần trăm, sau đó trả về kết quả.
document.querySelector('#tip-form').onchange = function(){
var bill = Number(document.getElementById('billTotal').value);
var tip = document.getElementById('tipInput').value;
document.getElementById('tipOutput').innerHTML = `${tip}%`;
var tipValue = bill * (tip/100)
var finalBill = bill + tipValue
console.log(finalBill)
var tipAmount = document.querySelector('#tipAmount')
var totalBillWithTip = document.querySelector('#totalBillWithTip')
tipAmount.value = tipValue.toFixed(2);
totalBillWithTip.value =finalBill.toFixed(2);
//Show Results
document.getElementById('results').style.display='block'
}
Bạn có thể xem một ví dụ hoạt động và mã của nó trên Codepen.io.