Target Heart Rate for Exercise Calculator
This calculator helps you determine your target heart rate zones for exercise.
Knowing your target heart rate is crucial for ensuring your workouts are effective
and safe. It helps you stay within an intensity level that promotes cardiovascular
health without overexerting yourself.
Calculate Target Heart Rate
function calculateTargetHeartRate() {
var ageInput = document.getElementById("age");
var maxHeartRateInput = document.getElementById("maxHeartRate");
var intensityLevelInput = document.getElementById("intensityLevel");
var resultDiv = document.getElementById("result");
var age = parseFloat(ageInput.value);
var maxHeartRate = parseFloat(maxHeartRateInput.value);
var intensityLevel = parseFloat(intensityLevelInput.value);
var calculatedMaxHeartRate;
// Check if maxHeartRateInput is empty or invalid, use the age formula
if (isNaN(maxHeartRate) || maxHeartRate <= 0) {
if (isNaN(age) || age <= 0) {
resultDiv.innerHTML = "Please enter a valid age or maximum heart rate.";
return;
}
calculatedMaxHeartRate = 220 – age;
} else {
calculatedMaxHeartRate = maxHeartRate;
}
// Validate calculatedMaxHeartRate
if (isNaN(calculatedMaxHeartRate) || calculatedMaxHeartRate <= 0) {
resultDiv.innerHTML = "Invalid Maximum Heart Rate calculated or entered. Please check your inputs.";
return;
}
// Validate intensityLevel
if (isNaN(intensityLevel) || intensityLevel 100) {
resultDiv.innerHTML = "Please select a valid intensity level between 0% and 100%.";
return;
}
var targetHeartRate = (calculatedMaxHeartRate * intensityLevel) / 100;
resultDiv.innerHTML = "For an age of " + age + " years (or using a max heart rate of " + calculatedMaxHeartRate + " bpm) and an intensity level of " + intensityLevel + "%, your target heart rate is:
" + targetHeartRate.toFixed(0) + " bpm .";
}
.calculator-container {
font-family: sans-serif;
max-width: 600px;
margin: 20px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
background-color: #f9f9f9;
}
.calculator-title {
text-align: center;
color: #333;
margin-bottom: 15px;
}
.calculator-description {
color: #555;
line-height: 1.6;
margin-bottom: 20px;
}
.calculator-inputs {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
margin-bottom: 20px;
}
.input-group {
display: flex;
flex-direction: column;
}
.input-group label {
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.input-group input[type="number"],
.input-group select {
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box; /* Ensures padding doesn't affect width */
}
.calculator-container button {
display: block;
width: 100%;
padding: 12px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
font-size: 18px;
cursor: pointer;
transition: background-color 0.3s ease;
margin-top: 10px;
}
.calculator-container button:hover {
background-color: #0056b3;
}
.calculator-result {
margin-top: 20px;
padding: 15px;
background-color: #e9ecef;
border: 1px solid #ced4da;
border-radius: 5px;
text-align: center;
font-size: 18px;
color: #333;
}