0
$("#scorecard").change(function() {
    var total = 0;
    $("#scorecard :checked").each(

    function() {
        total += parseInt($(this).val())
    });
    $("#score").val(total);
}).change();

此函数以 html 形式实时汇总无线电检查的值。 http://jsfiddle.net/hireconor/DDfbf/

我该如何修改它,所以它会计算等于 0 的已检查单选值?因此,如果选中的值为 0,则等于 1,其他任何值 = 0,然后将其减去 18,将其显示在 id="score" 的文本框中。

4

3 回答 3

0

这是一种不太明显的方法:

var total = $('#scorecard :checked').filter(function() {
    return $(this).val() === '0';
}).length;

这是一个更新的jsfiddle


编辑:我不确定如何解释minus it by 18......是那个18 - total还是total - 18?无论如何,这是一个显示前者的更新小提琴。

于 2013-04-10T20:16:55.670 回答
0

演示:http: //jsfiddle.net/DDfbf/3/

$("#scorecard").change(function() {
    var total = 0;
    var checkedTotal = 0;

    $("#scorecard :checked").each(

    function() {
        total += parseInt($(this).val())
        if (this.value == 0) {
            checkedTotal++;
        }
    });
    $("#score").val(total);
    console.log(checkedTotal);
}).change();
于 2013-04-10T20:17:30.470 回答
0

小提琴

 $("#scorecard").change(function() {
    var total = 0;
    $("#scorecard :checked").each(

    function() {
        var valu = parseInt($(this).val());
        if(valu === 0){
          total += 1;
        }
        else{
        total += valu;
        }
    });
    $("#score").val(18-total);
}).change();
于 2013-04-10T20:18:40.140 回答