Javascript 把钱拿到别处去

Javascript 把钱拿到别处去,javascript,Javascript,我希望得到介于“(+$”和“)”之间的金额,并将其添加到inputbox的值中 例如,您可以选择以下选项: 索莱罗异国情调(+1.85美元) 卡布奇诺(+2.49美元) iMac 27英寸3.1GHz(+$1999.00) 这些金额将从您选择的选项中减去: 1.85 2.49 1999.00 输入框将显示:2003.34 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml

我希望得到介于“(+$”和“)”之间的金额,并将其添加到inputbox的值中

例如,您可以选择以下选项:
索莱罗异国情调(+1.85美元)
卡布奇诺(+2.49美元)
iMac 27英寸3.1GHz(+$1999.00)

这些金额将从您选择的选项中减去:
1.85
2.49
1999.00

输入框将显示:2003.34


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Get amount and put elsewhere</title>
</head>

<body>

<form action="">

  <fieldset>

    <ul style="list-style:none;padding-left:0;">
      <li>Ice Cream:
        <select class="optionsIceCream" name="IceCream">
          <option value="IceCream01">Select Ice Cream</option>
          <option value="IceCream02">Solero Exotic (+$1.85)</option>
          <option value="IceCream03">Magnum Ecuador (+$4.85)</option>
          <option value="IceCream04">Cornetto Enigma (+$2.00)</option>
        </select>
      </li>

      <li>Coffee:
        <select class="optionsCoffee" name="Coffee">
          <option value="Coffee01">Select Coffee</option>
          <option value="Coffee02">Cup of Joe (+$0.99)</option>
          <option value="Coffee03">Cappuccino (+$2.49)</option>
          <option value="Coffee04">Latte Macchiato (+$2.99)</option>
        </select>
      </li>

      <li>Computers:
        <select class="optionsComputers" name="Computers">
          <option value="Computer01">Select Computer</option>
          <option value="Computer02">Dell Inspiron 620 (+$449.99)</option>
          <option value="Computer03">HP Pavilion dv7t (+$949.99)</option>
          <option value="Computer04">iMac 27-inch 3.1GHz (+$1,999.00)</option>
        </select>
      </li>
    </ul>

    Total: <input class="totalAmount" type="text" disabled="disabled" value="0.00" />

  </fieldset>

</form>

</body>
</html>
有人知道可以做到这一点的javascript代码吗?(不向选项标记添加更多属性)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Get amount and put elsewhere</title>
</head>

<body>

<form action="">

  <fieldset>

    <ul style="list-style:none;padding-left:0;">
      <li>Ice Cream:
        <select class="optionsIceCream" name="IceCream">
          <option value="IceCream01">Select Ice Cream</option>
          <option value="IceCream02">Solero Exotic (+$1.85)</option>
          <option value="IceCream03">Magnum Ecuador (+$4.85)</option>
          <option value="IceCream04">Cornetto Enigma (+$2.00)</option>
        </select>
      </li>

      <li>Coffee:
        <select class="optionsCoffee" name="Coffee">
          <option value="Coffee01">Select Coffee</option>
          <option value="Coffee02">Cup of Joe (+$0.99)</option>
          <option value="Coffee03">Cappuccino (+$2.49)</option>
          <option value="Coffee04">Latte Macchiato (+$2.99)</option>
        </select>
      </li>

      <li>Computers:
        <select class="optionsComputers" name="Computers">
          <option value="Computer01">Select Computer</option>
          <option value="Computer02">Dell Inspiron 620 (+$449.99)</option>
          <option value="Computer03">HP Pavilion dv7t (+$949.99)</option>
          <option value="Computer04">iMac 27-inch 3.1GHz (+$1,999.00)</option>
        </select>
      </li>
    </ul>

    Total: <input class="totalAmount" type="text" disabled="disabled" value="0.00" />

  </fieldset>

</form>

</body>
</html>

把钱拿到别处去
  • 冰淇淋: 精选冰淇淋 索莱罗异国情调(+1.85美元) 万能厄瓜多尔(+4.85美元) Cornetto Enigma(+2.00美元)
  • 咖啡: 精选咖啡 乔杯(+$0.99) 卡布奇诺(+2.49美元) 拿铁马奇亚托(2.99美元)
  • 计算机: 选择计算机 戴尔Inspiron 620(+449.99美元) HP Pavilion dv7t(+949.99美元) iMac 27英寸3.1GHz(+$1999.00)
总数:




**************更新:2011年9月9日


我找到了一个解决方案,感谢雅虎!答案

这很简单,但非常有效,它的工作非常完美!

以下是完整的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Get amount and put elsewhere</title>
</head>

<body>

<form action="">

  <fieldset>

    <ul style="list-style:none;padding-left:0;">
      <li>Ice Cream:
        <select class="optionsIceCream" name="IceCream">
          <option value="IceCream01">Select Ice Cream</option>
          <option value="IceCream02">Solero Exotic (+$1.85)</option>
          <option value="IceCream03">Magnum Ecuador (+$4.85)</option>
          <option value="IceCream04">Cornetto Enigma (+$2.00)</option>
        </select>
      </li>

      <li>Coffee:
        <select class="optionsCoffee" name="Coffee">
          <option value="Coffee01">Select Coffee</option>
          <option value="Coffee02">Cup of Joe (+$0.99)</option>
          <option value="Coffee03">Cappuccino (+$2.49)</option>
          <option value="Coffee04">Latte Macchiato (+$2.99)</option>
        </select>
      </li>

      <li>Computers:
        <select class="optionsComputers" name="Computers">
          <option value="Computer01">Select Computer</option>
          <option value="Computer02">Dell Inspiron 620 (+$449.99)</option>
          <option value="Computer03">HP Pavilion dv7t (+$949.99)</option>
          <option value="Computer04">iMac 27-inch 3.1GHz (+$1,999.00)</option>
        </select>
      </li>
    </ul>

    Total: <input class="totalAmount" type="text" disabled="disabled" value="0.00" />

  </fieldset>

</form>

<script type="text/javascript">
    //<![CDATA[
        (function () {
            var selects = document.getElementsByTagName("select"),
                L = selects.length,
                i;

            for (i = 0; i < L; i++) {
                selects[i].setAttribute("onchange", "calcTotal();");
            }
        }());

        function calcTotal() {
            var icecream = [0.00, 1.85, 4.85, 2.00],
                coffee = [0.00, 0.99, 2.49, 2.99],
                computer = [0.00, 449.99, 949.99, 1999.00],
                total = document.getElementsByTagName("input")[0],
                select = document.getElementsByTagName("select");

            total.value = (icecream[select[0].selectedIndex] +
                coffee[select[1].selectedIndex] + 
                computer[select[2].selectedIndex]).toFixed(2);
        }
    //]]>
</script>

</body>
</html>

把钱拿到别处去
  • 冰淇淋: 精选冰淇淋 索莱罗异国情调(+1.85美元) 万能厄瓜多尔(+4.85美元) Cornetto Enigma(+2.00美元)
  • 咖啡: 精选咖啡 乔杯(+$0.99) 卡布奇诺(+2.49美元) 拿铁马奇亚托(2.99美元)
  • 计算机: 选择计算机 戴尔Inspiron 620(+449.99美元) HP Pavilion dv7t(+949.99美元) iMac 27英寸3.1GHz(+$1999.00)
总数: //
< /代码> 您可以使用正则表达式来查找字符串的数值部分,然后使用PARSETIN()来获得数字。

< P>而不是放置ICECRAM01、ICECRAM02等,而对于其他人,考虑价格。我想这会使你更容易计算总数


      <li>Ice Cream:
        <select class="optionsIceCream" name="IceCream">
          <option value="0.0">Select Ice Cream</option>
          <option value="1.85">Solero Exotic (+$1.85)</option>
          <option value="4.85">Magnum Ecuador (+$4.85)</option>
          <option value="2.00">Cornetto Enigma (+$2.00)</option>
        </select>
      </li>

  • 冰淇淋: 精选冰淇淋 索莱罗异国情调(+1.85美元) 万能厄瓜多尔(+4.85美元) Cornetto Enigma(+2.00美元)

  • 使用此模式,您只需获取所选值并将其相加。

    您可以将其与正则表达式匹配:

    var re = new RegExp('\\(\\+\\$([0-9.]*)\\)');
    var match = re.exec('(+$1.85)');
    return match[1];
    

    这与
    (+$
    ,数字,
    匹配。转义是用双反斜杠完成的,
    \\
    。这些数字放在括号之间,表示在
    match[1]

    parseInt()中返回的组将返回一个int。也就是说,parseInt('1.85')将返回1,而不是1.85。使用一元加号运算符将字符串转换为数字:+'1.85'将得到1.85。很抱歉,您可以使用parseFloat()或number()将其转换为数字。谢谢您的回答。尽管我需要一个javascript,它可以在不改变现有属性值或向Option标记添加新属性的情况下实现这一点。Yeap没有问题。如果你没有选择,那么你应该做你需要做的。但是如果你可以改变代码,你应该考虑改变它。从部分文本中获取数据并不理想,因为您无法依赖它们。我只是想知道那些冰淇淋01等的价值观是用来做什么的,我想提出另一种选择。@Sjoerd的答案应该给你你想要的。我有一个创建这些选项列表的代码,它还生成某些特定属性,如果我更改这些属性,代码将不再工作。你如何将此代码的结果发送到inputbox,你能在上面的示例html中使用你的代码来澄清这一点吗?