(JAVASCRIPTを使用して)私のアプリケーションには、複数のチェックボックスがあります(10個のボックスを想定)。ラッキーディップのようなボタンをクリックするときは、6つのランダムなチェックボックスを自動的に選択する必要があります。同じボタンをもう一度クリックすると、最初の値とは別に、10個の初期値から異なる6個の値を取得したいと思います。10個のチェックボックスから6個のチェックボックス(異なる値ではない)をチェックできます。
いくつか提案をお願いします。
(JAVASCRIPTを使用して)私のアプリケーションには、複数のチェックボックスがあります(10個のボックスを想定)。ラッキーディップのようなボタンをクリックするときは、6つのランダムなチェックボックスを自動的に選択する必要があります。同じボタンをもう一度クリックすると、最初の値とは別に、10個の初期値から異なる6個の値を取得したいと思います。10個のチェックボックスから6個のチェックボックス(異なる値ではない)をチェックできます。
いくつか提案をお願いします。
これは、6つのランダムなチェックボックスをチェックする純粋なJavascriptの例です。
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;
}
};
};
必要な手順は次のとおりです(jQueryを使用)
ステップ 1: 10 個のcheckbox
ID を配列に格納します。
ステップ 2: 配列をシャッフルする
for loop
ステップ 3: 6 つの値とcheck
チェックボックスまでを使用して、シャッフルされた配列をループします。
これがデモですhttp://jsfiddle.net/bcb8C/4/