Javascript 如何使用参数而不是值获取单选按钮组的总和
我有多组单选按钮,其中每一组的选定值需要添加并显示给用户。到目前为止,我一直在通过switch语句更改函数中的值来处理加法Javascript 如何使用参数而不是值获取单选按钮组的总和,javascript,jquery,html,radio-button,Javascript,Jquery,Html,Radio Button,我有多组单选按钮,其中每一组的选定值需要添加并显示给用户。到目前为止,我一直在通过switch语句更改函数中的值来处理加法 <form name="config" id="config"> <div class="row-fluid"> <h3>Memory</h3> <input type="radio" name="section1" value="4gb" onclick="changePrice(0)" checked
<form name="config" id="config">
<div class="row-fluid">
<h3>Memory</h3>
<input type="radio" name="section1" value="4gb" onclick="changePrice(0)" checked>4gb<br>
<input type="radio" name="section1" value="8gb" onclick="changePrice(100)">8gb (+$100)<br>
<input type="radio" name="section1" value="16gb" onclick="changePrice(200)">16gb (+$200)
</div>
<div class="row-fluid">
<h3>Primary Hard Drive</h3>
<input type="radio" name="section2" value="dell" onclick="changePrice(0)" checked>Dell<br>
<input type="radio" name="section2" value="asus" onclick="changePrice(100)">Asus(+$100)
</div>
</form>
<div id="price"></div>
是否有一种方法可以使用通过changePrice函数传递的参数进行这些计算(这样我就不必更改switch语句中的值)?如果您将函数定义更改为以下内容,它将接受您的参数
function changePrice(val1)
如果您可以更改每个输入字段上的value属性以包含增量值,那么计算总和的过程就会容易得多。(这可能不适合您试图解决的问题
jQuery的基本解决方案
var sum = $("input[name=section1]").val() + $("input[name=section2]").val();
var sum = 0;
$("input[type=radio]").each(function(){sum += $(this).val();});
如果列表很长,可以使用jQuery迭代单选按钮集
var sum = $("input[name=section1]").val() + $("input[name=section2]").val();
var sum = 0;
$("input[type=radio]").each(function(){sum += $(this).val();});
下面是如何在没有jQuery的情况下实现这一点 您需要告诉
changePrice
函数它应该为哪个部分更改价格,因此您需要将调用更改为如下所示changePrice(1100)
,其中1是部分,100是价格更改。然后您可以单独收集所有部分价格,并将其相加如下:
var displayPrice = document.getElementById("price");
var baseNum = 200;
displayPrice.innerHTML = baseNum;
var sections = {};
function changePrice(section,val){
// add or update the section value
sections[section] = val;
// start with the base price
var sum = baseNum;
// loop over all the sections and add them to the base price
for(var key in sections) {
sum = sections[key] + sum;
}
displayPrice.innerHTML = sum;
}
功能显示价格(价格){
var val1=0;
对于(i=0;i
r15
R1 10
选择另一个号码:
R2 15
R2 20
你的总数是20卢比
可能的重复项您可以访问单选按钮的其他属性,而不仅仅是其值。您可能会发现数据-
属性在此处很有用。函数(changePrice){
可能没有执行您想要执行的操作。该语句声明了一个带有单个参数的匿名函数,changePrice
,并在无效上下文中将其丢弃。