Javascript 如何将表单名称传递到if-else-if-else循环中?

Javascript 如何将表单名称传递到if-else-if-else循环中?,javascript,Javascript,代码的HTML部分: function ship_stuff() { ship_me = document.getElementById("shipMethod").value; alert(ship_me); if("ship_me" == "priority2" ) { document.getElementById("shippingChg").value = 3.20; } else if(ship_me == "priority3") { document.getE

代码的HTML部分:

function ship_stuff()
{

ship_me = document.getElementById("shipMethod").value;
alert(ship_me);
if("ship_me" == "priority2" )
{
    document.getElementById("shippingChg").value = 3.20;
}

else if(ship_me == "priority3")
{
    document.getElementById("shippingChg").value = 4.30 ;
}
else if(ship_me == "priority4")
{
    document.getElementById("shippingChg").value = 5.40 ;
}

else if(ship_me == "overnight")
{
    document.getElementById("shippingChg").value = 15.75 ;
}

else if(ship_me == "UPS")
{
    document.getElementById("shippingChg").value = 15.00 ;
}

else  (ship_me == "free")
{
    document.getElementById("shippingChg").value = 0.00 ;
}

装运方式:
选择一种运输方式
优先邮件$3.20(4件或更少)
优先邮件$4.30(6件或更少)
优先邮件$5.40(8件或更少)
快递$15.75(仅限4件或以下)
UPS-2天$15.00(9-49项)
免费送货(仅50件以上)
当我尝试将变量与字符串进行比较时,javascript循环失败。它不会将选项值作为字符串进行比较。有没有办法解决这个问题

谢谢你的帮助

这是可疑的:

<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>
你不是说:

if("ship_me" == "priority2" )
您可能还希望将ship_me声明为var:

if(ship_me == "priority2" )   
对字符串的显式强制转换可以这样做:

var ship_me = document.getElementById("shipMethod").value; 
这是可疑的:

<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>
你不是说:

if("ship_me" == "priority2" )
您可能还希望将ship_me声明为var:

if(ship_me == "priority2" )   
对字符串的显式强制转换可以这样做:

var ship_me = document.getElementById("shipMethod").value; 
这是获得所选选项的正确方法


这是获取所选选项的正确方法。

在最后一个else子句中,您缺少一个
if
。如果希望它始终运行,请删除括号中的条件

此外,请尝试映射,而不是if/else链:

ship_me = document.getElementById("shipMethod").options[document.getElementById("shipMethod").selectedIndex];

在最后一个else子句中,缺少一个
if
。如果希望它始终运行,请删除括号中的条件

此外,请尝试映射,而不是if/else链:

ship_me = document.getElementById("shipMethod").options[document.getElementById("shipMethod").selectedIndex];

嘿,马特,帮你自己一个忙,用这个代码代替:

var shippingCharges = {
  "priority2" : 3.20,
  "priority3": 4.30,
  "priority4" : 5.40,
  "overnight": 15.75,
  "UPS": 15.00,
  "free": 0.00
};

document.getElementById("shippingChg").value = shippingCharges[ship_me];

就这些。但是请记住,我将描述性选项
选择配送方式
(用户没有选择任何内容)映射到免费配送方式。

嘿,马特,帮个忙,改用此代码:

var shippingCharges = {
  "priority2" : 3.20,
  "priority3": 4.30,
  "priority4" : 5.40,
  "overnight": 15.75,
  "UPS": 15.00,
  "free": 0.00
};

document.getElementById("shippingChg").value = shippingCharges[ship_me];
就这些。但是请记住,我将描述性选项
选择配送方式
(用户没有选择任何内容)映射到免费配送方式