将单选按钮中的值动态添加到数组中,然后使用jquery将这些值一起添加到结果中

时间:2010-12-17 18:11:15

标签: jquery arrays dynamic

我基本上正在进行测验,我想要做的就是从所选的单选按钮中获取值,将它们添加到一起并返回结果。共有8个问题。但这个测验的功能是有前一个和下一个按钮,允许用户返回并更改他们的答案。因此,如果用户选择更改其答案,那么我需要获取该特定问题的值并将其替换为新值。所有问题都在页面上静态显示,并通过jquery显示和隐藏。只是需要一些帮助。不需要发布到服务器。只需要保留结果并在用户完成后返回总数。我没有任何代码可以发布以启动此过程。谢谢。我希望这是有道理的。

1 个答案:

答案 0 :(得分:0)

已更新以回答评论中的其他问题

嗨Brian,

最好创建一个onChange处理程序并将答案存储在一个对象中,如下所示:

$(document).ready(function(){
    answers = new Object()
    $('.option').change(function(){
        var answer = ( $(this).attr('value') )
        var question = ( $(this).attr('name') )
        answers[question] = answer
    })
    $('#done').click(function(){
        var result = sum_values()
        // do stuff with the result
        alert('the sum of the recorded values is: ' + result)
    })
})

function sum_values(){
    var the_sum = 0
    for (question in answers){
        the_sum = the_sum + parseInt(answers[question])
    }
    return the_sum
}


<input class='option' type="radio" name="question1" value="1">answer 1 to Q1<br>
<input class='option' type="radio" name="question1" value="2">answer 2 to Q1<br>
<hr>
<input class='option' type="radio" name="question2" value="1">answer 1 to Q2<br>
<input class='option' type="radio" name="question2" value="2">answer 2 to Q2<br>
<span id='done' style='cursor:pointer;'>done</div>

这将为您留下一个答案对象,只要选择或更改了一个单选框,就会更新该对象。您可以通过调用sum_values()来总结值,在此示例中,当用户单击“完成”时。

希望这有帮助,

霍夫