-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 回答