我有一组5个问题,是/否单选按钮。 no按钮的值为0,而yes按钮的值为20(表示20%,因此5 x是的答案= 100%)。
<div id="test-questions">
<p>Question 1
<input type="radio" id="r1" name="Set1" value="0" /><label for="r1"> No</label><br>
<input type="radio" id="r2" name="Set1" value="20" /><label for="r2"> Yes</label>
</p>
<p>Question 2
<input type="radio" id="r3" name="Set2" value="0" /><label for="r3"> No</label><br>
<input type="radio" id="r4" name="Set2" value="20" /><label for="r4"> Yes</label>
</p>
<p>Question 3
<input type="radio" id="r5" name="Set3" value="0" /><label for="r5"> No</label><br>
<input type="radio" id="r6" name="Set3" value="20" /><label for="r6"> Yes</label>
</p>
<p>Question 4
<input type="radio" id="r7" name="Set4" value="0" /><label for="r7"> No</label><br>
<input type="radio" id="r8" name="Set4" value="20" /><label for="r8"> Yes</label>
</p>
<p>Question 5
<input type="radio" id="r9" name="Set5" value="0" /><label for="r9"> No</label><br>
<input type="radio" id="r10" name="Set5" value="20" /><label for="r10"> Yes</label>
</p>
<p><input id="total" type="hidden" name="total" value="" /></p>
</div>
我有以下脚本来计算总数:
function setRadios(){
function sumRadios(){
var total = 0, i = 1, oForm = this.form;
while (radgrp = oForm.elements['Set' + (i++)]){
j = radgrp.length;
do
if (radgrp[--j].checked){
total += Number(radgrp[j].value);
break;
}
while (j);
}
oForm.elements.total.value = total.toFixed(2);
}
var i = 0, input, inputs = document.getElementById('test-questions').getElementsByTagName('input');
while (input = inputs.item(i++))
if (input.name.match(/^Set\d+$/))
input.onclick = sumRadios;
}
onload = setRadios;
这一切都正常(虽然如果你有一个更优雅的解决方案,请随意这么说)但我现在要做的是根据总数改变图形,所以如果总数是'20 '然后显示div1,如果它是'40'则显示div2,依此类推。我们的想法是为条形图设置动画,即0%,20%,40%,60%,80%或100%。
我之前从未使用过jQuery,所以请对我好一点:)
答案 0 :(得分:0)
您可以使用背景颜色和宽度0设置空Div,然后使用值“total”更改该Div的值:
<div id="showbar" style="background-color:blue;height:1em;width:0;"></div>
在sumRadios()中:
document.getElementById('showbar').style.width = total+'px';