如何更新计算所需的对象属性值

时间:2016-07-08 18:06:11

标签: jquery

    // 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>

1 个答案:

答案 0 :(得分:0)

rmb值是字符串,这就是你得到错误的原因

要达到预期值,请将rmb值更改为整数,如下所示

var rmb = $rmb.val()*1;// converting that string to integer ,so that calculation works.

http://codepen.io/nagasai/pen/QEqyyO