How to have 2 decimal places on a price calculator

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Bridget Mysz
    New Member
    • Apr 2012
    • 1

    How to have 2 decimal places on a price calculator

    I have a price calculator, and I need to have it contain 2 decimal places when generating a quote. I tried using toFixed(2) (as you can see below) but I am not sure if I did it right. Can you help? Thanks

    Code:
    <script type="text/javascript">
    var roomobjs = [];
    var roomobj = {};
    
    roomobj.name = "Bathroom";
    roomobj.clean = 15;
    roomobj.moveFurniture = 10;
    roomobj.preVacuum = 5;
    roomobj.protect = 10;
    roomobjs[roomobj.name] = roomobj;
    
    var roomobj = {};
    roomobj.name = "Bedroom";
    roomobj.clean = 30;
    roomobj.moveFurniture = 0;
    roomobj.preVacuum = 10;
    roomobj.protect = 15;
    roomobjs[roomobj.name] = roomobj;
    
    var roomobj = {};
    roomobj.name = "Dining Room";
    roomobj.clean = 30;
    roomobj.moveFurniture = 20;
    roomobj.preVacuum = 10;
    roomobj.protect = 15;
    roomobjs[roomobj.name] = roomobj;
    
    
    var roomobj = {};
    roomobj.name = "Family Room";
    roomobj.clean = 30;
    roomobj.moveFurniture = 20;
    roomobj.preVacuum = 10;
    roomobj.protect = 15;
    roomobjs[roomobj.name] = roomobj;
    
    var roomobj = {};
    roomobj.name = "Hallway";
    roomobj.clean = 15;
    roomobj.moveFurniture = 0;
    roomobj.preVacuum = 5;
    roomobj.protect = 10;
    roomobjs[roomobj.name] = roomobj;
    
    var roomobj = {};
    roomobj.name = "Kitchen";
    roomobj.clean = 30;
    roomobj.moveFurniture = 20;
    roomobj.preVacuum = 10;
    roomobj.protect = 15;
    roomobjs[roomobj.name] = roomobj;
    
    
    var roomobj = {};
    roomobj.name = "Living Room";
    roomobj.clean = 30;
    roomobj.moveFurniture = 20;
    roomobj.preVacuum = 10;
    roomobj.protect = 15;
    roomobjs[roomobj.name] = roomobj;
    
    var roomobj = {};
    roomobj.name = "Rec Room";
    roomobj.clean = 30;
    roomobj.moveFurniture = 20;
    roomobj.preVacuum = 10;
    roomobj.protect = 15;
    roomobjs[roomobj.name] = roomobj;
    
    var roomobj = {};
    roomobj.name = "Steps";
    roomobj.clean = 30;
    roomobj.moveFurniture = 0;
    roomobj.preVacuum = 10;
    roomobj.protect = 15;
    roomobjs[roomobj.name] = roomobj;
    
    
    
    
    
    
    var furnitureobjs = [];
    var furnitureobj = {};
    
    furnitureobj.name = "Chair-Dining Room";
    furnitureobj.clean = 20;
    furnitureobj.preVacuum = 5;
    furnitureobj.protect = 10;
    furnitureobjs[furnitureobj.name] = furnitureobj;
    
    var furnitureobj = {};
    furnitureobj.name = "Chair-Living Area";
    furnitureobj.clean = 39;
    furnitureobj.preVacuum = 5;
    furnitureobj.protect = 15;
    furnitureobjs[furnitureobj.name] = furnitureobj;
    
    var furnitureobj = {};
    furnitureobj.name = "Couch";
    furnitureobj.clean = 69;
    furnitureobj.preVacuum = 10;
    furnitureobj.protect = 25;
    furnitureobjs[furnitureobj.name] = furnitureobj;
    
    var furnitureobj = {};
    furnitureobj.name = "Ottoman";
    furnitureobj.clean = 15;
    furnitureobj.preVacuum = 5;
    furnitureobj.protect = 10;
    furnitureobjs[furnitureobj.name] = furnitureobj;
    
    var furnitureobj = {};
    furnitureobj.name = "Sectional-'L-Shape'";
    furnitureobj.clean = 129;
    furnitureobj.preVacuum = 25;
    furnitureobj.protect = 30;
    furnitureobjs[furnitureobj.name] = furnitureobj;
    
    var furnitureobj = {};
    furnitureobj.name = "Sectional-'U-Shape'";
    furnitureobj.clean = 159;
    furnitureobj.preVacuum = 25;
    furnitureobj.protect = 35;
    furnitureobjs[furnitureobj.name] = furnitureobj;
    
    
    
    function renderRoomDropDown(obj)
    {
     for(var i in roomobjs)
     {
      obj.append($("<option>"+roomobjs[i].name+"</option>"));
     }
    }
    
    function renderFurnitureDropDown(obj)
    {
     for(var i in furnitureobjs)
     {
      obj.append($("<option>"+furnitureobjs[i].name+"</option>"));
     }
    }
    
    
    function addRoomRow()
    {
     var obj = $("<div class='record'><div class='col1'><select></select></div><div class='col2'><input type='checkbox' name='cb_clean' /> Clean</div><div class='col3'><input type='checkbox' name='cb_moveFurniture' /> Move Furniture</div><div class='col4'><input name='cb_preVacuum' type='checkbox' /> Pre-Vacuum</div><div class='col5'><input type='checkbox' name='cb_protect' /> Protect</div><div class='col6 remove'><a onclick='$(this).parent().parent().remove();'>Remove</a></div><br style='clear:left;' /></div>");
     renderRoomDropDown(obj.find('select'));
     $("#roomHolder").append(obj);
    }
    
    
    function addFurnitureRow()
    {
     var obj = $("<div class='frecord'><div class='col1'><select></select></div><div class='col2'><input type='checkbox' name='cb_clean' /> Clean</div><div class='col3'><input name='cb_preVacuum' type='checkbox' /> Pre-Vacuum</div><div class='col4'><input type='checkbox' name='cb_protect' /> Protect</div><div class='col5 remove'><a onclick='$(this).parent().parent().remove();'>Remove</a></div><br style='clear:left;' /></div>");
     renderFurnitureDropDown(obj.find('select'));
     $("#furnitureHolder").append(obj);
    }
    
    
    
    $(document).ready(function()
    {
     $('#moreInfo').hide();
     addRoomRow();
     addRoomRow();
     addRoomRow();
     addFurnitureRow();
     addFurnitureRow();
    });
    
    function calculate()
    {
     var total = 0;
     $('.record').each(function(i,e)
     {
      var rowTotal = 0;
      var roomName = $(e).find('select').val();
      var clean = roomobjs[roomName].clean;
      if($(e).find("input[name='cb_clean']").attr('checked')=='checked')
      {
       rowTotal += clean;
      }
      var moveFurniture = roomobjs[roomName].moveFurniture;
      if($(e).find("input[name='cb_moveFurniture']").attr('checked')=='checked')
      {
       rowTotal += moveFurniture;
      }
      var preVacuum = roomobjs[roomName].preVacuum;
      if($(e).find("input[name='cb_preVacuum']").attr('checked')=='checked')
      {
       rowTotal += preVacuum;
      }
      var protect = roomobjs[roomName].protect;
      if($(e).find("input[name='cb_protect']").attr('checked')=='checked')
      {
       rowTotal += protect;
      }
      total += rowTotal;
     });
    
     $('.frecord').each(function(i,e)
     {
      var rowTotal = 0;
      var furnitureName = $(e).find('select').val();
      var clean = furnitureobjs[furnitureName].clean;
      if($(e).find("input[name='cb_clean']").attr('checked')=='checked')
      {
       rowTotal += clean;
      }
      var preVacuum = furnitureobjs[furnitureName].preVacuum;
      if($(e).find("input[name='cb_preVacuum']").attr('checked')=='checked')
      {
       rowTotal += preVacuum;
      }
      var protect = furnitureobjs[furnitureName].protect;
      if($(e).find("input[name='cb_protect']").attr('checked')=='checked')
      {
       rowTotal += protect;
      }
      total += rowTotal;
     });
     var length = $('#length').val();
     var width = $('#width').val();
     total = total + (length*width*.75);
     /* sids change */
     if(total<95) total = 95;
     return total;
    }
    
    
    function doCalculate()
     {
     var total = calculate();
     $('#moreInfo').show();
     $('#total').html("$"+total);
     if(total<95)
     {
     $("input[type='submit']").attr('disabled',true);
     }
     else
     {
     $("input[type='submit']").removeAttr('disabled');
     }
     $("input[name='mytotal']").val(calculate());
     }
    mytotal.val = calculate.toFixed(2)
    
    
    </script>
    Last edited by Dormilich; Apr 2 '12, 07:16 PM. Reason: Please use [CODE] [/CODE] tags when posting code.
  • Dormilich
    Recognized Expert Expert
    • Aug 2008
    • 8694

    #2
    I think that’s your least problem.

    first and foremost, mytotal is undefined. then there is roomobj and furnitureobj, which you overwrite half a dozen times and which is not an array. this and more you can find in your browser’s Error Console.

    Comment

    Working...