2016-11-11 41 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计算函数返回总金额。选中我已更新我的答案 –