Javascript 把钱拿到别处去
我希望得到介于“(+$”和“)”之间的金额,并将其添加到inputbox的值中 例如,您可以选择以下选项: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
索莱罗异国情调(+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中使用你的代码来澄清这一点吗?