请问一下各位高手,在网上找了个JS抽奖程序,随机出现结果,怎么让它实现结果不重复了,小弟先谢了。
请好心人帮帮小弟啊。
代码如下:
<html> 
<title>随机抽奖程序</title> 
<head><meta http-equiv=Content-Type content="text/html; charset=gb2312"> 
</head> 
<body> 
<script type="text/javascript"><!-- 
var alldata = "1,3,5,2,6,7,8,9,10,4" //抽奖数据,以逗号分隔 
var alldataarr = alldata.split(",") 
var num = alldataarr.length-1 
var timer 
function change(){ document.getElementById("oknum").innerHTML = alldataarr[GetRnd(0,num)]; 

function start(){ 
clearInterval(timer); 
timer = setInterval('change()',10); //随机数据变换速度,越小变换的越快 

function ok(){ 
clearInterval(timer); 
document.getElementById("showresult").value=document.getElementById("oknum").innerText; 

function GetRnd(min,max){ 
return parseInt(Math.random()*(max-min+1)); 

// --></script> 
<div id="oknum" name="oknum" >请单击开始抽奖</div> 
<button onClick="start()" accesskey="s">开始抽奖(<U>S</U>)</button> 
<button onClick="ok()" accesskey="o">停止(<U>O</U>)</button> 
<input type="text" id="showresult" value=""> 
</body> 
</html>

解决方案 »

  1.   

    <body> 
    <script type="text/javascript"><!-- 
    var alldata = "1,3,5,2,6,7,8,9,10,4" //抽奖数据,以逗号分隔 
    var alldataarr = alldata.split(",") 
    var num = alldataarr.length-1 
    var timer 
    function change(){ document.getElementById("oknum").innerHTML = alldataarr[GetRnd(0,num)]; 

    function start(){ 
    clearInterval(timer); 
    timer = setInterval('change()',10); //随机数据变换速度,越小变换的越快 

    function ok(){ 
    clearInterval(timer); 
    var val = document.getElementById("oknum").innerText;
    document.getElementById("showresult").value=val;
    alldata =  alldata.replace(new RegExp(val+',\?'),'');
    alldataarr = alldata.split(",");
    num = alldataarr.length-1 ;

    function GetRnd(min,max){ 
    return parseInt(Math.random()*(max-min+1)); 

    // --></script> 
    <div id="oknum" name="oknum" >请单击开始抽奖</div> 
    <button onClick="start()" accesskey="s">开始抽奖(<U>S</U>)</button> 
    <button onClick="ok()" accesskey="o">停止(<U>O</U>)</button> 
    <input type="text" id="showresult" value=""> 
    </body>  
      

  2.   

    将抽奖参数的随机数放到一个数组中,放入之前在数组中比较下如果重复了。就继续生成一个,如果没有重复
    就放入数组即可。
    判断重复数据参考:
    http://blog.csdn.net/IBM_hoojo/archive/2010/06/17/5675195.aspx
      

  3.   

    <!--[if IE 6]>
    <script type="text/javascript">
    document.execCommand("BackgroundImageCache", false, true);
    </script>
    <![endif]-->