Java Script

From rbachwiki
Revision as of 14:41, 9 August 2016 by Bacchas (talk | contribs) (Created page with "==Working With Forms == <pre> Get element by id document.getElementById('idname').value Select Boxes document.getElementById('idname').value Radio Buttons Loop throught button...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Working With Forms

Get element by id
document.getElementById('idname').value
Select Boxes
document.getElementById('idname').value
Radio Buttons
Loop throught buttons and see which one is checked
------------------------------------------
var methods = document.getElementById('form_name').nameProperty
    for(var i=0;i<methods.length; i++){                                        if(methods[i].checked==true)
    alert(methods[i].value)
    }
------------------------------------------------
Check Boxes - the check property return boolean

document.getElementById('idname').checked
Add event listner to submit
-------------------------------------------
************************HTML ********
    <form class="cart" id="cart-oil">
    <div class="item">
        <h2>Extra Virgin, Cold-Pressed</h2>
        <p>You've never tasted olive oil this delicious.</p>

        <div class="info">
        <span>Price: $10/bottle</span>
        </div>

        <div class="order">
        <label for="txt-q-extra">Quantity desired:</label>
        <input type="text" id="txt-q-extra" size="3" placeholder="0">
        </div>
    </div>

    <div class="item">
        <h2>Cold-Pressed</h2>
        <p>Ideal for cooking.</p>

        <div class="info">
        <span>Price: $8/bottle</span>
        </div>

        <div class="order">
        <label for="txt-q-cold">Quantity desired:</label>
        <input type="text" id="txt-q-cold" size="3" placeholder="0">
        </div>
    </div>

    <div class="item">
        <h2>Garlic-infused</h2>
        <p>If you love garlic, this is the one for you.</p>

        <div class="info">
        <span>Price: $10/bottle</span>
        </div>

        <div class="order">
        <label for="txt-q-garlic">Quantity desired:</label>
        <input type="text" id="txt-q-garlic" size="3" placeholder="0">
        </div>
    </div>

    <div class="item">
        <h2>Lemon-infused</h2>
        <p>If you love Lemon, this is the one for you.</p>

        <div class="info">
        <span>Price: $12/bottle</span>
        </div>

        <div class="order">
        <label for="txt-q-lemon">Quantity desired:</label>
        <input type="text" id="txt-q-lemon" size="3" placeholder="0">
        </div>
    </div>

    <div id="summary">
        <h2>Estimate Order</h2>
        <div class="group state">
            <label for="s-state">State:</label>
            <select id="s-state">
                <option value="">- select -</option>
                <option value="CA">California (7.5% tax)</option>
                <option value="IL">Illinois</option>
                <option value="NH">New Hampshire</option>
                <option value="PA">Pennsylvania</option>
          <option value="WA">Washington</option>
            </select>
        </div>

        <div class="group method">
            <label for="r-method-pickup">Shipping Method:</label><br>
            <input type="radio" value="pickup" name="r_method" id="r-method-pickup" checked> <label for="r-method-pickup">Pickup (free)</label><br>

            <input type="radio" value="usps" name="r_method" id="r-method-usps"> <label for="r-method-usps">US Mail ($2/bottle)</label><br>

            <input type="radio" value="ups" name="r_method" id="r-method-ups"> <label for="r-method-ups">UPS ($3/bottle)</label>
        </div>

        <div class="group special">
            <label for="c-special-gift">Special:</label><br>
            <input type="checkbox" value="YES" id="c-special-gift"> <label for="c-special-gift">This is a gift</label><br>

            <input type="checkbox" value="YES" id="c-special-gold"> <label for="c-special-gold">Use gold-flecked bottles</label><br>

            <input type="checkbox" value="YES" id="c-special-cork"> <label for="c-special-cork">Use plastic caps instead of cork</label>
        </div>

        <div class="group calc">
            <p>
            <label for="btn-estimate">Click to estimate:</label>
            <input type="submit" value="Estimate Total" id="btn-estimate">
            <input type="text" id="txt-estimate" placeholder="$0.00">
            </p>

            <div id="results"></div>
        </div>
    </div>

    </form>

    **************************************
  // this listens for the submit button then run the estimate function
  document.getElementById('cart-oil').addEventListener('submit', estimateTotal);

  function estimateTotal(event){
    event.preventDefault();
    if (document.getElementById('s-state').value=='') {
      alert("please choose");
      document.getElementById('s-state').focus();

    } //end if

    var btlCold = parseInt(document.getElementById('txt-q-cold').value) || 0;
    var btlExtra = parseInt(document.getElementById('txt-q-extra').value) || 0;
    var btlGarlic = parseInt(document.getElementById('txt-q-garlic').value) || 0;
    var btlLemon = parseInt(document.getElementById('txt-q-lemon').value) || 0;
    var state = document.getElementById('s-state').value;

    var methods = document.getElementById('cart-oil').r_method;
    var shippingMethod = document.getElementById('r_method');

        for (var i = 0; i < methods.length; i++) {
          if (methods[i].checked==true) {
              shippingMethod = methods[i].value;

          } // end if

        } // end for
        var taxFactor = 1;
        if (state=='CA') {
          taxFactor = 1.075;
        }else if(state=='WA'){
          taxFactor =1.065;

        }else{
          taxFactor = 1;
        }

        //calculate shipping values from a drop down list
        var shippingCostPer = 0;

        switch(shippingMethod){
          case 'pickup':
            shippingCostPer = 0;
            break;
          case 'usps':
            shippingCostPer = 2;
            break;
          case 'ups':
            shippingCostPer = 3;
            break;
          default:
            shippingCostPer = 0;
            break;
        }
        var totalBottles = btlExtra + btlCold + btlGarlic + btlLemon;
        var shippingCost = totalBottles * shippingCostPer;
        var subTotal = ((btlExtra * 10) + (btlCold * 8) + (btlGarlic * 10) + (btlLemon * 12)) * taxFactor;

        var estimate = "$"+(subTotal + shippingCost).toFixed(2);

        document.getElementById('txt-estimate').value = estimate;
         // results is a empty div with id='results'

        document.getElementById('results').innerHTML = 'Total Bottles: ' + totalBottles + '<br>';
        document.getElementById('results').innerHTML += 'Total Shipping: $' +shippingCost.toFixed(2)+'<br>';
        document.getElementById('results').innerHTML += 'Tax: $'+ ((taxFactor - 1)*100 ).toFixed(2)+ '%';

Back To Top- Home - Category