用jQuery中的无线电值计算价格

时间:2014-04-07 09:27:47

标签: jquery forms sum radio

显然这应该做但不起作用:

http://jsfiddle.net/9baeJ/

HTML:

<form id="myForm">
    <label>
        20
        <input id="fb3" type="radio" name="fb1" value="20" />
    </label>

    <label>
        35
        <input id="fb4" type="radio" name="fb1" value="35" />
    </label>

    <label>
         10
         <input id="fb1" type="radio" name="fb" value="10" />
     </label>

    <label>
        15
        <input id="fb2" type="radio" name="fb" value="15" />
    </label>
    <br/>
    Total: <span id="totalScore">0</span>€
</form>

和js:

var sum = 0;
$("#myForm").find("input[type='radio']:checked").each(function (i, e){sum+=$(e).val();});
$("#totalScore").val(sum);

我尝试了在stackoverflow中看到的所有内容,但我没有弄清楚代码的错误。实际上,这个解决方案是某人已经发布的示例之一。

2 个答案:

答案 0 :(得分:1)

Trythis

function calcscore(){
    var score = 0;
    $("input[type='radio']:checked").each(function(){
        score+=parseInt($(this).val());
    });
    $("#totalScore").text(score)
}
$().ready(function(){
    $("input[type='radio']").change(function(){
        calcscore()
    });
});

DEMO

答案 1 :(得分:0)

Span没有值,您必须使用.text()或.html()。您还需要使用DOM就绪处理程序包装代码。

试试这个

$(function(){
    $('#myForm input[type="radio"]').on('change', function () {
        var sum = 0;
        $("#myForm").find("input[type='radio']:checked").each(function () {
            sum += parseInt(this.value);
        });
        $("#totalScore").text(sum);
    });
});

DEMO