Termékkalkulátor JavaScriptben
Ebben a részben egy termékkalkulátort valósítunk meg. Ez egy táblázat lesz, amelybe a weboldalunk felhasználója be tudja írni vásárlásait.
A vásárlások egy űrlap segítségével kerüljenek bevitelre. Ezen kívül minden termékhez biztosítsunk egy törlési linket. Készítsük el a termék nevének, árának és mennyiségének szerkesztési lehetőségét is. Legyen ez a szerkesztés a táblázat cellájára duplán kattintva lehetséges.
A táblázat alatt jelenjen meg a termékek összköltsége. Ügyeljünk arra, hogy ez az összeg frissüljön a termékek törlése vagy szerkesztése esetén.
Itt egy minta arról, hogy mi kell, hogy kijöjjön:
Itt a HTML és CSS kód, amelyet a feladat megoldásához használhatsz:
<div id="parent">
<div id="form">
<input id="name" placeholder="név">
<input id="price" placeholder="ár">
<input id="amount" placeholder="mennyiség">
<input id="add" type="button" value="hozzáad">
</div>
<h2>Termékek táblázata:</h2>
<table id="table">
<tr>
<th>név</th>
<th>ár</th>
<th>menny.</th>
<th>összeg</th>
<th>törlés</th>
</tr>
</table>
<div id="result">
összesen: <span id="total">0</span>
</div>
</div>
* {
box-sizing: border-box;
}
#parent {
margin: 0 auto;
width: 500px;
}
#form {
display: flex;
margin-bottom: 15px;
}
#form input {
padding: 8px;
width: 24%;
margin: 0 0.5% 10px 0.5%;
}
h2 {
margin-top: 0;
margin-bottom: 7px;
}
#table {
width: 100%;
margin-bottom: 10px;
}
#table td, #table th {
padding: 8px;
text-align: center;
border: 1px solid black;
}
#table td.remove {
color: blue;
cursor: pointer;
text-decoration: underline;
}
#table td.remove:hover {
text-decoration: none;
}
#result {
text-align: right;
margin-right: 10px;
}
Kezdésként szerezzük be az összes szükséges elem referenciáját változókba:
let name = document.querySelector('#name');
let price = document.querySelector('#price');
let amount = document.querySelector('#amount');
let add = document.querySelector('#add');
let table = document.querySelector('#table');
let total = document.querySelector('#total');
Másold ki a neked megadott kód vázlatokat.