2016-11-11 63 views
0

我能夠計算入住日期和退房日期之間的差異,以獲得入住天數以及退房日期是否在入住日期之前。如何將用戶選擇的酒店房間乘以天數乘以?

但是,我很難弄清楚如何選擇用戶選擇的房間(標準,女王,國王,商務或豪華),並將該房間的每晚費用乘以入住酒店的天數。

如果可能的話,我還想使用type =「date」而不是datepicker。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <script> 
 
\t \t function check() { 
 
\t \t \t var date1 = new Date(document.getElementById('checkin').value); 
 
\t \t \t var date2 = new Date(document.getElementById('checkout').value); 
 
\t \t \t var diff = Math.abs(date2.getTime() - date1.getTime()); 
 
\t \t \t var dayDiff = Math.ceil(diff/(1000 * 3600 * 24)); 
 
    
 
\t \t \t if (date1 > date2){ 
 
\t \t \t \t alert("Check-out date must be after check-in date!") 
 
\t \t \t } 
 
\t \t \t else { 
 
\t \t \t \t calculate(); 
 
\t \t \t } \t 
 
\t \t } 
 

 
</script> 
 
<body> 
 
    <form> 
 
\t <fieldset> 
 
\t <legend>Reserve Hotel Room</legend> 
 
\t \t \t Check-In Date:<br> 
 
\t \t \t <input type="date" id="checkin" name="checkin" required> 
 
\t \t \t <br><br> 
 
\t \t \t Check-Out Date:<br> 
 
\t \t \t <input type="date" id="checkout" name="checkout" required> 
 
\t \t \t <br><br> 
 
\t \t \t Room: 
 
\t \t \t <select id="room" name="room" onchange="report(this.value)"> 
 
\t \t \t \t <option id="standard" value="50">Standard ($50/night)</option> 
 
\t \t \t \t <option id="queen" value="75">Queen ($75/night)</option> 
 
\t \t \t \t <option id="king" value="100">King ($100/night)</option> 
 
\t \t \t \t <option id="business" value="125">Business ($125/night)</option> 
 
\t \t \t \t <option id="deluxe" value="150">Deluxe Suite ($150/night)</option> 
 
\t \t \t </select> 
 
\t \t \t <button type="submit" onclick="check()">Submit</button> 
 
\t \t \t </fieldset> 
 
\t </form> 
 
</body>

+0

會是這樣的工作? \t \t function calculate(); \t \t \t如果(的document.getElementById( 「標準」) \t \t \t \t VAR報告= THIS.VALUE * 50 * dayDiff; – ChaCol

+0

輸入型 「日期」 不會被使用的所有瀏覽器都支持這樣不實際的所有您需要做的是在*室*元素的值乘以天數:'dayDiff *的document.getElementById(「房間」)value'你或許應該使用* Math.round *,而不是* Math.ceil *。 (檢查夏令時範圍) – RobG

回答

1

內,您的計算功能

function calculate(dayDiff) { 
    var e = document.getElementById("room"); 
    var amt = e.options[e.selectedIndex].value; //gets selected value. As you have set value as price per night. its easier to calculate the total amount. 
    return dayDiff * parseInt(amt); 
} 

UPDATE:提醒在彈出框中的用戶?

在你的檢查功能。

var totalamount = calculate(dayDiff); 
alert(totalamount) 
+0

如何在彈出窗口中向用戶提醒返回值 – ChaCol

+0

可以用'var amt = e.value'讀取該值; – RobG

+0

@ChaCol計算函數返回總金額。選中我已更新我的答案 –