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 に答える