You need to sign in to do that
Don't have an account?
ASHISH KUMAR YADAV 7
how to implement bmi calcualtor in lwc
Hello folks,
I am facing error while implementing bmi in lwc.can anyone help me to convert this html file and js file in lwc itry to convert but getting some error .i am new in lwc.
code using html and javascript
========================
.html file
=======
<!DOCTYPE html>
<html lang="en">
<head>
<title>BMI Calculator</title>
<!--Google Font-->
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@500;700&display=swap" rel="stylesheet">
<!--Stylesheet-->
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="row">
<input type="range" min="20" max="200" value="20" id="weight" oninput="calculate()">
<span id="weight-val">20 kg</span>
</div>
<div class="row">
<input type="range" min="100" max="250" value="100" id="height" oninput="calculate()">
<span id="height-val">100 cm</span>
</div>
<p id="result">20.0</p>
<p id="category">Normal weight</p>
</div>
<!--Script-->
<script src="script.js"></script>
</body>
</html>
.js file
======
function calculate(){
var bmi;
var result = document.getElementById("result");
var weight = parseInt(document.getElementById("weight").value);
document.getElementById("weight-val").textContent = weight + " kg";
var height = parseInt(document.getElementById("height").value);
document.getElementById("height-val").textContent = height + " cm";
bmi = (weight / Math.pow( (height/100), 2 )).toFixed(1);
result.textContent = bmi;
if(bmi < 18.5){
category = "Underweight";
result.style.color = "#ffc44d";
}
else if( bmi >= 18.5 && bmi <= 24.9 ){
category = "Normal Weight";
result.style.color = "#0be881";
}
else if( bmi >= 25 && bmi <= 29.9 ){
category = "Overweight";
result.style.color = "#ff884d";
}
else{
category = "Obese";
result.style.color = "#ff5e57";
}
document.getElementById("category").textContent = category;
}
converting above file in lwc
=======================
bmi.html
==========
<template>
<div class="slds-box slds-theme_shade">
<lightning-input type="number" name="height" id="height" label="Height" onchange={handleNumberoneChange} value={firstNumber}></lightning-input>
<lightning-input type="number" name="weight" id="weight" label="Weight" onchange={handleNumberTwoChange} value={secondNumber}></lightning-input>
<b>Body Mass Index [BMI] is : </b>
<!--<P>{resultValue}</p> -->
<lightning-button label="Calculate" onclick={bmi}> </lightning-button>
</div>
</template>
Bmi.js
======
import { LightningElement,track } from 'lwc';
export default class BmiLwc extends LightningElement {
@track firstNumber;
@track secondNumber;
handleNumberoneChange(event) {
this.firstNumber = parseInt(event.target.value);
}
handleNumberTwoChange(event) {
this.secondNumber = parseInt(event.target.value);
}
handlecalculate(event){
var bmi;
var result = document.getElementById("result");
var weight = parseInt(document.getElementById("weight").value);
document.getElementById("weight-val").textContent = weight + " kg";
var height = parseInt(document.getElementById("height").value);
document.getElementById("height-val").textContent = height + " cm";
bmi = (weight / Math.pow( (height/100), 2 )).toFixed(1);
result.textContent = bmi;
if(bmi < 18.5){
category = "Underweight";
result.style.color = "#ffc44d";
}
else if( bmi >= 18.5 && bmi <= 24.9 ){
category = "Normal Weight";
result.style.color = "#0be881";
}
else if( bmi >= 25 && bmi <= 29.9 ){
category = "Overweight";
result.style.color = "#ff884d";
}
else{
category = "Obese";
result.style.color = "#ff5e57";
}
document.getElementById("category").textContent = category;
}
}
I am facing error while implementing bmi in lwc.can anyone help me to convert this html file and js file in lwc itry to convert but getting some error .i am new in lwc.
code using html and javascript
========================
.html file
=======
<!DOCTYPE html>
<html lang="en">
<head>
<title>BMI Calculator</title>
<!--Google Font-->
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@500;700&display=swap" rel="stylesheet">
<!--Stylesheet-->
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="row">
<input type="range" min="20" max="200" value="20" id="weight" oninput="calculate()">
<span id="weight-val">20 kg</span>
</div>
<div class="row">
<input type="range" min="100" max="250" value="100" id="height" oninput="calculate()">
<span id="height-val">100 cm</span>
</div>
<p id="result">20.0</p>
<p id="category">Normal weight</p>
</div>
<!--Script-->
<script src="script.js"></script>
</body>
</html>
.js file
======
function calculate(){
var bmi;
var result = document.getElementById("result");
var weight = parseInt(document.getElementById("weight").value);
document.getElementById("weight-val").textContent = weight + " kg";
var height = parseInt(document.getElementById("height").value);
document.getElementById("height-val").textContent = height + " cm";
bmi = (weight / Math.pow( (height/100), 2 )).toFixed(1);
result.textContent = bmi;
if(bmi < 18.5){
category = "Underweight";
result.style.color = "#ffc44d";
}
else if( bmi >= 18.5 && bmi <= 24.9 ){
category = "Normal Weight";
result.style.color = "#0be881";
}
else if( bmi >= 25 && bmi <= 29.9 ){
category = "Overweight";
result.style.color = "#ff884d";
}
else{
category = "Obese";
result.style.color = "#ff5e57";
}
document.getElementById("category").textContent = category;
}
converting above file in lwc
=======================
bmi.html
==========
<template>
<div class="slds-box slds-theme_shade">
<lightning-input type="number" name="height" id="height" label="Height" onchange={handleNumberoneChange} value={firstNumber}></lightning-input>
<lightning-input type="number" name="weight" id="weight" label="Weight" onchange={handleNumberTwoChange} value={secondNumber}></lightning-input>
<b>Body Mass Index [BMI] is : </b>
<!--<P>{resultValue}</p> -->
<lightning-button label="Calculate" onclick={bmi}> </lightning-button>
</div>
</template>
Bmi.js
======
import { LightningElement,track } from 'lwc';
export default class BmiLwc extends LightningElement {
@track firstNumber;
@track secondNumber;
handleNumberoneChange(event) {
this.firstNumber = parseInt(event.target.value);
}
handleNumberTwoChange(event) {
this.secondNumber = parseInt(event.target.value);
}
handlecalculate(event){
var bmi;
var result = document.getElementById("result");
var weight = parseInt(document.getElementById("weight").value);
document.getElementById("weight-val").textContent = weight + " kg";
var height = parseInt(document.getElementById("height").value);
document.getElementById("height-val").textContent = height + " cm";
bmi = (weight / Math.pow( (height/100), 2 )).toFixed(1);
result.textContent = bmi;
if(bmi < 18.5){
category = "Underweight";
result.style.color = "#ffc44d";
}
else if( bmi >= 18.5 && bmi <= 24.9 ){
category = "Normal Weight";
result.style.color = "#0be881";
}
else if( bmi >= 25 && bmi <= 29.9 ){
category = "Overweight";
result.style.color = "#ff884d";
}
else{
category = "Obese";
result.style.color = "#ff5e57";
}
document.getElementById("category").textContent = category;
}
}
Hey Asish,
What is the error you are getting ?
Regards,
Priya Ranjan
HTML
JS
CSS XML
Thanks.