J'ai essayé de faire un formulaire en ligne pour les clients de choisir le plat qu'ils veulent et pour combien de personnes il était censé être. Mais j'ai du mal à le faire fonctionner avec Javascript seulement.Calcul en direct - Panier en Javascript
Ce que j'avais à l'esprit était de faire quelque chose comme ça:
- si le plat est vérifié
- alors obtenir la valeur du menu déroulant
- calculer le total par plat
- faire pour chaque plat
- puis dans la fonction
calculateTotal()
je voudrais résumer tous les sous-totaux
function priceDish1() {
var quantity = 0;
var totalPriceDish1 = 0;
var dishPrice = 19;
var quantity = document.getElementById("quantityDish1").value;
var theDish1 = document.getElementById("dish1");
if (theDish1.checked == true) {
totalPriceDish1 = quantity * dishPrice;
}
return totalPriceDish1;
}
function priceDish2() {
var quantity = 0;
var totalPriceDish1 = 0;
var dishPrice = 19;
var quantity = document.getElementById("quantityDish1").value;
var theDish1 = document.getElementById("dish1");
if (theDish1.checked == true) {
totalPriceDish1 = quantity * dishPrice;
}
return totalPriceDish1;
}
function calculateTotal() {
var theTotalPrice = totalPriceDish1() + totalPriceDish2();
document.getElementById('totalPrice').innerHTML = "Total $" + theTotalPrice;
}
<div id="div">
<form action="" id="priceForm">
<label class="dishes"><input type="checkbox" id="dish1" value="number1"> Dish Name 1</label><br>
<label class="labelQuantPeople">Number of Dishes</label><br>
<select id="quantityDish1" name='numberPeoplel1' onchange="calculateTotal()">
<option class="quantDish1" value="0">0</option>
<option class="quantDish1" value="1">1</option>
<option class="quantDish1" value="2">2</option>
<option class="quantDish1" value="3">3</option>
<option class="quantDish1" value="4">4</option>
<option class="quantDish1" value="5">5</option>
<option class="quantDish1" value="6">6</option>
<option class="quantDish1" value="7">7</option>
<option class="quantDish1" value="8">8</option>
<option class="quantDish1" value="9">9</option>
<option class="quantDish1" value="10">10</option>
</select><br>
<label class="dishes"><input type="checkbox" id="dish2" value="number2"> Dish Name 2</label><br>
<label class="labelQuantPeople">Number of Dishes</label><br>
<select id="quantityDish2" name='numberPeoplel2' onchange="calculateTotal()">
<option class="quantDish2" value="1">1</option>
<option class="quantDish2" value="2">2</option>
<option class="quantDish2" value="3">3</option>
<option class="quantDish2" value="4">4</option>
<option class="quantDish2" value="5">5</option>
<option class="quantDish2" value="6">6</option>
<option class="quantDish2" value="7">7</option>
<option class="quantDish2" value="8">8</option>
<option class="quantDish2" value="9">9</option>
<option class="quantDish2" value="10">10</option>
</select><br>
</form>
</div>
<p id="totalPrice"></p>
Merci à l'avance !!
Note sur le calcul des prix avec JavaScript (et pour les autres langages en général), vous pouvez envisager d'utiliser une bibliothèque bien établie car l'arithmétique à virgule flottante n'est pas précise. (tldr 'theTotalPrice' aura tort de temps en temps.) –