Zuerst müssen wir erfassen, was der Benutzer im Formular einreicht. Wir verwenden JavaScript, um zu verhindern, dass die Seite aktualisiert wird, wenn das Formular gesendet wird, sodass wir die Berechnung durchführen können, ohne dass die Eingabe verloren geht.
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); });
Jetzt erstellen wir die Funktion, die prüft, wie viele Personen in jedem Zimmertyp übernachten können. Diese Funktion ist wichtig, da die Anzahl der Gäste in den Hotelzimmern begrenzt ist.
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 } }
Als nächstes berechnen wir den Zimmerpreis pro Nacht basierend auf dem Anreisedatum und der Zimmerkategorie. Die Preise sind in der Hochsaison (Juni bis August) höher und im Rest des Jahres niedriger.
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); });
Abschließend berechnen wir die Gesamtkosten des Aufenthalts. Wir wenden etwaige Rabatte an und addieren dann die Steuern, um den endgültigen Gesamtbetrag zu erhalten.
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 } }
Und das ist es! Wir haben einen einfachen, aber funktionalen Room Cost Estimator mit JavaScript erstellt.
Mein GitHub Repo für diesen Code ist hier! Einschließlich des grundlegenden HTML- und Bootstrap-Stils für die Seite
Thounny Keo
Kreativer Entwickler und Designer
Frontend-Entwicklungsstudent | Year Up United
Das obige ist der detaillierte Inhalt vonErstellen eines Raumkostenkalkulators mit JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!