Maison >interface Web >js tutoriel >Création d'un estimateur du coût d'une pièce avec JavaScript
Tout d'abord, nous devons capturer ce que l'utilisateur soumet dans le formulaire. Nous utiliserons JavaScript pour empêcher l'actualisation de la page lorsque le formulaire est soumis, ce qui nous permet de gérer le calcul sans perdre la saisie.
document.getElementById("costForm").addEventListener("submit", function (event) { event.preventDefault(); // Prevents the page from reloading // 1. Get the values from the form const name = document.getElementById("name").value; const checkInDate = document.getElementById("checkInDate").value; const nights = parseInt(document.getElementById("nights").value); const roomType = document.querySelector('input[name="roomType"]:checked').value; const discount = document.querySelector('input[name="discount"]:checked').value; const adults = parseInt(document.getElementById("adults").value); const children = parseInt(document.getElementById("children").value); // 2. Check room occupancy const maxOccupancy = getMaxOccupancy(roomType); if (adults + children > maxOccupancy) { document.getElementById("messageDiv").innerText = `The room you selected cannot hold your group. Max occupancy is ${maxOccupancy}.`; return; } // 3. Clear previous messages and calculate the cost document.getElementById("messageDiv").innerText = ""; calculateCost(roomType, checkInDate, nights, discount); });
Maintenant, créons la fonction qui vérifie combien de personnes peuvent séjourner dans chaque type de chambre. Cette fonction est importante car les chambres d'hôtel ont des limites quant au nombre de clients qu'elles peuvent accueillir.
function getMaxOccupancy(roomType) { if (roomType === "queen") { return 5; // Queen rooms can hold up to 5 people } else if (roomType === "king") { return 2; // King rooms can hold up to 2 people } else if (roomType === "suite") { return 6; // 2-Bedroom Suites can hold up to 6 people } }
Ensuite, nous calculons le tarif de la chambre par nuit en fonction de la date d'arrivée et du type de chambre. Les tarifs sont plus élevés pendant la haute saison (de juin à août) et plus bas le reste de l'année.
document.getElementById("costForm").addEventListener("submit", function (event) { event.preventDefault(); // Prevents the page from reloading // 1. Get the values from the form const name = document.getElementById("name").value; const checkInDate = document.getElementById("checkInDate").value; const nights = parseInt(document.getElementById("nights").value); const roomType = document.querySelector('input[name="roomType"]:checked').value; const discount = document.querySelector('input[name="discount"]:checked').value; const adults = parseInt(document.getElementById("adults").value); const children = parseInt(document.getElementById("children").value); // 2. Check room occupancy const maxOccupancy = getMaxOccupancy(roomType); if (adults + children > maxOccupancy) { document.getElementById("messageDiv").innerText = `The room you selected cannot hold your group. Max occupancy is ${maxOccupancy}.`; return; } // 3. Clear previous messages and calculate the cost document.getElementById("messageDiv").innerText = ""; calculateCost(roomType, checkInDate, nights, discount); });
Enfin, nous calculons le coût total du séjour. Nous appliquons toutes les réductions, puis ajoutons les taxes pour obtenir le total final.
function getMaxOccupancy(roomType) { if (roomType === "queen") { return 5; // Queen rooms can hold up to 5 people } else if (roomType === "king") { return 2; // King rooms can hold up to 2 people } else if (roomType === "suite") { return 6; // 2-Bedroom Suites can hold up to 6 people } }
Et c'est tout ! Nous avons créé un Estimateur du coût de la chambre simple mais fonctionnel en utilisant JavaScript.
Mon dépôt GitHub pour ce code est ici ! Y compris le style HTML et Bootstrap de base pour la page
Thounny Kéo
Développeur créatif et concepteur
Étudiant en développement frontend | Année après Unis
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!