Taxes based on State

Discussion in 'JavaScript' started by goneinsane, Sep 10, 2019.

  1. #1
    Hello,

    I have a form with a dropdown menu with an id of #state. I would like to make an IF statement that says that if the selected state was NY, var tax5 = 1.05;. Everything else will be var tax15 = 1.15;. How can I make this happen? Below is the code.

            
            var tax15 = 1.15;
            var tax5 = 1.05;
    
            var qty = $("#qty").val();
            var price = parseFloat(data.replace("$", ""));
            var shipping = parseFloat(data2.replace("$", ""));
            if(!shipping){ shipping = 0; }
            if($('#store_pickup').prop("checked") == true){
              var shipping = 0;
                   console.log('check');         
                }
            $("#shippinginput").val(shipping.toFixed(2));
            $("#subtotal").html("$"+(price*qty).toFixed(2));
            $("#shipping").html("$"+(shipping*qty).toFixed(2));
            $("#tax").html("$"+(((price+shipping)*qty)*tax5).toFixed(2));
            $("#total2").html("$"+((price+shipping)*qty).toFixed(2));
            $("#cardSubmitBtn").val('BUY NOW $'+((price+shipping)*qty).toFixed(2));
    Code (JavaScript):
     
    goneinsane, Sep 10, 2019 IP
  2. hdewantara

    hdewantara Well-Known Member

    Messages:
    540
    Likes Received:
    47
    Best Answers:
    25
    Trophy Points:
    155
    #2
    Something like below....
    <select id="state">
      <option value="AL">alabama</option>
      <option value="NY">new york</option>
      <option value="CO">colorado</option>
    </select>
    HTML:
    in pure javascript though:
    <script>
          var tax = 1.15;
          document.getElementById('state').addEventListener('change',function(){
          if(this.value === 'NY')
            tax = 1.05;
        else
            tax = 1.15;
        },false);
    
    var qty = $("#qty").val();
    var price = parseFloat(data.replace("$", ""));
    var shipping = parseFloat(data2.replace("$", ""));
    if(!shipping){ shipping = 0; }
    if($('#store_pickup').prop("checked") == true){
    var shipping = 0;
    console.log('check');
    }
    $("#shippinginput").val(shipping.toFixed(2));
    $("#subtotal").html("$"+(price*qty).toFixed(2));
    $("#shipping").html("$"+(shipping*qty).toFixed(2));
    $("#tax").html("$"+(((price+shipping)*qty)*tax).toFixed(2));
    $("#total2").html("$"+((price+shipping)*qty).toFixed(2));
    $("#cardSubmitBtn").val('BUY NOW $'+((price+shipping)*qty).toFixed(2));
    </script>
    
    Code (JavaScript):
     
    hdewantara, Sep 10, 2019 IP
    goneinsane likes this.
  3. goneinsane

    goneinsane Well-Known Member

    Messages:
    303
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    130
    #3
    After removing the first occurrence of var tax = 1.15, it worked. Thank you so much.
    Do you know how I could include 2 states without repeating? For example, if NY or PA are picked?
     
    Last edited: Sep 11, 2019
    goneinsane, Sep 11, 2019 IP
  4. hdewantara

    hdewantara Well-Known Member

    Messages:
    540
    Likes Received:
    47
    Best Answers:
    25
    Trophy Points:
    155
    #4
    if(this.value === 'NY' || this.value === 'PA' || ...)
         tax = 1.05;
              else
         tax = 1.15;
    Code (JavaScript):
    should be okay I think -- what's repeating?

    Perhaps to use switch statement?
    
    switch(this.value){
         'NY': 
         'PA':
              tax = 1.05;
              break;
         default:
              tax = 1.15;
    }
    
    Code (JavaScript):
     
    Last edited: Sep 11, 2019
    hdewantara, Sep 11, 2019 IP
  5. goneinsane

    goneinsane Well-Known Member

    Messages:
    303
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    130
    #5
    That worked. Thanks.
     
    goneinsane, Sep 11, 2019 IP
  6. hdewantara

    hdewantara Well-Known Member

    Messages:
    540
    Likes Received:
    47
    Best Answers:
    25
    Trophy Points:
    155
    #6
    am happy to help you :)
     
    hdewantara, Sep 11, 2019 IP