tags:

views:

51

answers:

2

So after about an hour wasn't able to find a good tutorial on how to use these tags and their ids,names, and values to achieve a decimal amount to finish summing my form. Simply put I have a select box and wish for it to return my option value and the amount of that option value.

Heres the HTML

<tr>
        <th colspan="4" class="label">Shipping Method:
          <select name="shipMethod" id="shipMethod" size="1">
            <option value="">Choose a shipping method</option>
            <option value="priority2">Priority mail $3.20 (4 items or less)</option>
            <option value="priority3">Priority mail $4.30 (6 items or less)</option>
            <option value="priority4">Priority mail $5.40 (8 items or less)</option>
            <option value="overnight">Express $15.75 (4 items or less only)</option>
            <option value="UPS">UPS - 2 day $15.00 (9 - 49 items)</option>
            <option value="free">Free shipping (50+ items only)</option>
          </select>
        </th>
        <td><input name="shippingChg" id="shippingChg" type="text" size="10" maxlength="60" value="" /></td>
      </tr>
      <tr>

Probably my first problem is setting up a loop for the decimal side of things. This is how I would attempt to write my loop and function for one select box

 function ship_some_stuff()
 var ship_me= document.getElementById("shipMethod").value; (unsure if this returns
 the option value though, but the idea is to save to a variable later)

 if ship_me == priority2 {
 var shipthisway = 3.20;
 document.getElementById("shippingCHg").value = varshipthisway ;
 }

 if ship_me == priority3{
 var shipthisway = 4.30;
 document.getElementById("shippingCHg").value = varshipthisway ;
 }


 else varship == ""; {
 alert("You haven't selected a shipping Method");
 }

Thanks for the help!

A: 

Using jQuery:

var shippingPrice = false;

switch($("#shipMethod").val())
{
    case "priority2":
        shippingPrice = "3.20";
        break;
    case "priority3":
        shippingPrice = "4.30";
        break;
    // and so on
}

if (shippingPrice)
    $("#shippingChg").val(shippingPrice);
else alert("You haven't selected a shipping method.");
eliah
A: 
function get_shipping_charge() { 
  var ship_me= document.getElementById("shipMethod").value;
  if (ship_me == "priority2") return 3.20;
  else if (ship_me == "priority3") return 4.30;
  else return NaN;
}
function do_shipping_charge() {
  var shipthisway = get_shipping_charge();
  if (shipthisway) document.getElementById("shippingCHg").value = shipthisway;
  else alert("You haven't selected a shipping Method");
}
machine elf
just curious did you break it into two functions for visibility purposes or for functionality?
Matt
Functionality, so there are no side effects if you're not ready to update the shippingCHg input (when nothing is selected). Otherwise, it would show "NaN" which doesn't look good and might cause problems with your other calculations.BTW, don't forget to vote +1 too. I'm new so every little bit helps =)
machine elf