-3

(JAVASCRIPTを使用して)私のアプリケーションには、複数のチェックボックスがあります(10個のボックスを想定)。ラッキーディップのようなボタンをクリックするときは、6つのランダムなチェックボックスを自動的に選択する必要があります。同じボタンをもう一度クリックすると、最初の値とは別に、10個の初期値から異なる6個の値を取得したいと思います。10個のチェックボックスから6個のチェックボックス(異なる値ではない)をチェックできます。

いくつか提案をお願いします。

4

2 に答える 2

1

これは、6つのランダムなチェックボックスをチェックする純粋なJavascriptの例です。

jsFiddleデモ

function getRand(exclude, max)
{
    var dupe = true;
    var myRandom;

    while(dupe)
    {
        myRandom = Math.floor(Math.random() * max);

        var found = false;
        for(var i=0;i<exclude.length; i++)
        {
            if(myRandom == exclude[i])
            {
                found = true;   
            }
        }

        if(!found) dupe = false;
    }

    return myRandom;
}

window.onload = function(){

    document.getElementById("lucky").onclick = function(){

        var checkboxList = document.getElementsByName("something[]");
        var rands = [];

        var total = 6;

        for(var j=0; j<checkboxList.length; j++){ checkboxList[j].checked = false; }

        for(var i=0; i<total; i++)
        {
            var myRandom = getRand(rands, checkboxList.length);
            rands.push(myRandom);
        }

        for(var x=0; x<rands.length; x++)
        {
            checkboxList[rands[x]].checked = true;   
        }

    };        

};​
于 2012-12-03T08:08:43.413 に答える
1

必要な手順は次のとおりです(jQueryを使用)

ステップ 1: 10 個のcheckboxID を配列に格納します。

ステップ 2: 配列をシャッフルする

for loopステップ 3: 6 つの値とcheckチェックボックスまでを使用して、シャッフルされた配列をループします。

これがデモですhttp://jsfiddle.net/bcb8C/4/

于 2012-12-03T08:05:47.393 に答える