2

ユーザーの選択をカウントするより効率的な方法があるかどうか疑問に思います:

これは、ページに複数回ある選択ドロップダウンです。

<select class="span2 jquery-countable" name="category[7]">
    <option></option>
    <option value="1">1. vote</option>
    <option value="2">2. vote</option>
    <option value="3">3. vote</option>
    <option value="4">4. vote</option>
</select>

これは、選択をカウントする私の js です。

$(document).ready(function () {

    $('#selected-count').html('You choose ' + getCount() + ' entries');

    function getCount() {
        prio1 = $('.jquery-countable option:selected[value="1"]').length;
        prio2 = $('.jquery-countable option:selected[value="2"]').length;
        prio3 = $('.jquery-countable option:selected[value="3"]').length;
        prio4 = $('.jquery-countable option:selected[value="4"]').length;

        return prio1 + prio2 + prio3 + prio4;
    }

    $('.jquery-countable').change(function () {
        $('.jquery-countable option:selected').each(function () {
            $('#selected-count').html('You choose ' + getCount() + ' entries');
        })
    })
});

私の目標は、ユーザーが行った空ではないすべての選択をカウントすることです?!

より効率的な方法はありますか?

ありがとう!

4

4 に答える 4

7

これは、希望どおりに空ではない選択されたアイテムの数を返します。

function getCount(){
   return $("select.jquery-countable option:selected[value!='']").length;
}
于 2012-05-30T12:50:19.330 に答える
1

ここにそれを行う方法があります

$(document).ready(function () {

    $('#selected-count').html('You choose ' +0 + ' entries');



    $('.jquery-countable').change(function () {
        var count = 0;
        $('.jquery-countable').each(function () {
            if($.trim($(this).val()).length > 0)
                count++;
        });
        $('#selected-count').html('You choose ' +count + ' entries');
    })
});​

働くフィドル

于 2012-05-30T12:51:16.080 に答える
0

このようなことを試してください

$("select").change(function(){           
   var count = $("select.jquery-countable option:selected[value!='']").length;
   console.log(count);
});
于 2012-05-30T12:53:20.393 に答える
-1

ええ、[value=#] を外してください。より一般的なセレクターは、選択された値の配列を返します。これには、選択の場合は 1 だけが含まれている必要があります。

function getCount() {
    return $('.jquery-countable option:selected').length;
}

これは、クラス jquery-countable で選択されている、ページ上の「選択された」オプションの総数をカウントします。

于 2012-05-30T12:47:19.727 に答える