【发布时间】:2017-06-22 06:35:35
【问题描述】:
我正在整理一份问卷,其中每个问题都有 4 个单选按钮选项。单选按钮附加了一个值,按我需要的方式加权。我有一个 javascript 函数,当我选择一个单选按钮时,它会更改值,但是,即使首次加载页面时,由于某种原因,值从 75 开始。我需要第一个问题 1A 的值是 0、3 或 5,然后一旦问题 1B 被回答,值就会变为 0、3、5、6、8 或 10。换句话说,新选择的值radio 被添加到从 1A 开始的 radio 值的值。这是我表格中的前几个问题。
<div class="panel-group" id="accordion1" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOneA">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion1" href="#collapseOneA" aria-expanded="true" aria-controls="collapseOneA">
<span class="letter">a</span> Question 1A
</a>
</h4>
</div>
<div id="collapseOneA" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOneA">
<div class="panel-body">
<label>
<input class="calc" type="radio" name="optionsRadios1" id="optionsRadios11A" value="5" checked>
YES
</label>
<label>
<input class="calc" type="radio" name="optionsRadios1" id="optionsRadios21A" value="0">
NO
</label>
<label>
<input class="calc" type="radio" name="optionsRadios1" id="optionsRadios31A" value="3">
PARTIAL
</label>
<label>
<input class="calc" type="radio" name="optionsRadios1" id="optionsRadios41A" value="0">
UNSURE
</label>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingTwoA">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion1" href="#collapseTwoA" aria-expanded="false" aria-controls="collapseTwoA">
<span class="letter">b</span> Question 1B
</a>
</h4>
</div>
<div id="collapseTwoA" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwoA">
<div class="panel-body">
<label>
<input class="calc" type="radio" name="optionsRadios2" id="optionsRadios11B" value="5" checked>
YES
</label>
<label>
<input class="calc" type="radio" name="optionsRadios2" id="optionsRadios21B" value="0">
NO
</label>
<label>
<input class="calc" type="radio" name="optionsRadios2" id="optionsRadios31B" value="3">
PARTIAL
</label>
<label>
<input class="calc" type="radio" name="optionsRadios2" id="optionsRadios41B" value="0">
UNSURE
</label>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingThreeA">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion1" href="#collapseThreeA" aria-expanded="false" aria-controls="collapseThreeA">
<span class="letter">c</span> Question1C
</a>
</h4>
</div>
<div id="collapseThreeA" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThreeA">
<div class="panel-body">
<label>
<input class="calc" type="radio" name="optionsRadios3" id="optionsRadios11C" value="5" checked>
YES
</label>
<label>
<input class="calc" type="radio" name="optionsRadios3" id="optionsRadios21C" value="0">
NO
</label>
<label>
<input class="calc" type="radio" name="optionsRadios3" id="optionsRadios31C" value="3">
PARTIAL
</label>
<label>
<input class="calc" type="radio" name="optionsRadios3" id="optionsRadios41C" value="0">
UNSURE
</label>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingFourA">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion1" href="#collapseFourA" aria-expanded="false" aria-controls="collapseFourA">
<span class="letter">d</span> Question 1D
</a>
</h4>
</div>
<div id="collapseFourA" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFourA">
<div class="panel-body">
<label>
<input class="calc" type="radio" name="optionsRadios4" id="optionsRadios11D" value="5" checked>
YES
</label>
<label>
<input class="calc" type="radio" name="optionsRadios4" id="optionsRadios21D" value="0">
NO
</label>
<label>
<input class="calc" type="radio" name="optionsRadios4" id="optionsRadios31D" value="3">
PARTIAL
</label>
<label>
<input class="calc" type="radio" name="optionsRadios4" id="optionsRadios41D" value="0">
UNSURE
</label>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingFiveA">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion1" href="#collapseFiveA" aria-expanded="false" aria-controls="collapseFiveA">
<span class="letter">e</span> Question 1E
</a>
</h4>
</div>
<div id="collapseFiveA" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFiveA">
<div class="panel-body">
<label>
<input class="calc" type="radio" name="optionsRadios5" id="optionsRadios11E" value="5" checked>
YES
</label>
<label>
<input class="calc" type="radio" name="optionsRadios5" id="optionsRadios21E" value="0">
NO
</label>
<label>
<input class="calc" type="radio" name="optionsRadios5" id="optionsRadios31E" value="3">
PARTIAL
</label>
<label>
<input class="calc" type="radio" name="optionsRadios5" id="optionsRadios41E" value="0">
UNSURE
</label>
</div>
</div>
</div>
</div>
这是我的 javascript 函数:
function calcscore(){
var score = 0;
$(".calc:checked").each(function(){
score+=parseInt($(this).val(),10);
});
$("input[name=sum]").val(score)
}
$().ready(function(){
$(".calc").change(function(){
calcscore()
});
});
我已将我的代码放入 JSFiddle 中:
https://jsfiddle.net/Dhaderlie/bkdqaxnL/
如果您测试表单,您会看到我得到的奇怪值。
【问题讨论】:
标签: javascript jquery html