// Below I create form input in order to input rooms needed in hotel. I want that to be added to initial hotel.booked object property value.
<form id="myForm">
Rooms needed:<input type="number" name="rm" id="rm1" >
<button type="submit">submit</button>
</form>
<H1 class="al">Hotel Room Availability</H1>
<p class="al">We have checked the hotel records and there are
<span id="rooms"></span> available
</p>
<p id="roomsNowAvail"></p>
<script type="text/javascript">
// Below creates hotel object
var hotel = {
name:"Benson hotel",
rooms:500,
booked:100,
checkAvailability: function(){
return this.rooms - this.booked;
}
//Below I try to update value of hotel.booked so that hotel.booked equals form input value plus initial hotel.booked value. I want to do that so that hotel.checkAvailability displays current rooms available.//
$("#myForm").on("submit", function(event) {
event.preventDefault();
var $rmb = $(this).find("input");
var rmb = $rmb.val();
hotel.booked = hotel.booked + rmb; //update hotel.booked value to include form input//
var elRooms = document.getElementById('roomsNowAvail');
elRooms.textContent = hotel.checkAvailability(); //supposed to spit out rooms available but instead is showing incorrect value//
});
</script>
答案 0 :(得分:0)
rmb值是字符串,这就是你得到错误的原因
要达到预期值,请将rmb值更改为整数,如下所示
var rmb = $rmb.val()*1;// converting that string to integer ,so that calculation works.