2016-11-11 11 views
0

チェックイン日とチェックアウト日の差を計算して、滞在日数とチェックアウト日がチェックイン日前であるかどうかを確認することができます。どのようにユーザーが選択したホテルの部屋を取って、滞在日数を掛ける?

しかし、私はユーザーが選択した部屋(スタンダード、クイーン、キング、ビジネス、デラックス)をどのようにとって、その部屋の1泊あたりの費用をホテルに滞在した日数。

可能であれば、datepickerの代わりにtype = "date"も使用したいと思います。あなたの計算関数内

<!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( 'room')。value'おそらく* Math.round *ではなく* Math.round *を使うべきでしょう。 – 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 calculate関数は合計金額を返します。 –

関連する問題