随机显示指定数字的程序,已选中的数字不再出现了,如何做到?

tjgok 2004-06-16 01:04:09
请教各位高手,以下是一个随机显示指定数字的程序,现在想已选中的数字不再出现了,如何做到?
如:原有数字是1,2,3,4,5,6 ,点击开始后随机显示,点击"选中"后,如果显示3,则再点继续后,只随机显示1,2,4,5,6了。




<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<script language="JavaScript">
<!--
var timer
function startrnd()
{
numberStr1="1,2,3,4,5,6"
numberStr2=numberStr1.split(",")
var rndIndex=Math.round(Math.random() * numberStr2.length)
if (rndIndex<1){
document.forms[0].elements[0].value=numberStr2[rndIndex]
}
else{
document.forms[0].elements[0].value=numberStr2[rndIndex-1]
}
}
function buttonclickevent(button){
if ((button.value=="开始")||(button.value=="继续")){
button.value="选中";
return timer=setInterval("startrnd()",60);
}
else{
button.value="继续";
clearInterval(timer);
return timer;
}
}
function defaultfocus(){
document.all.button1.focus();
}

//-->
</script>
</head>

<body scroll="no" onLoad="defaultfocus()">

<form method="POST">
<table>
<tr>
<td width="583" height="114" align="center" background="image/kuang.gif">
<input name="xyid" type=text size=11 maxlength=11>
</td>
</tr>
</table>

<div align="center">
<br>
<br>
<br>
<input name="button1" type=button value="开始" onclick='buttonclickevent(this)' style="color: #0000000; border: 3px

double #FFFF00; font-size:25pt">
  

</div>
</form>

...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghr100 2004-06-16
  • 打赏
  • 举报
回复
帮你改了一下.

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<script language="JavaScript">
<!--
var timer;
numberStr1="1,2,3,4,5,6"
var schose = new Array();
function startrnd()
{
numberStr1="1,2,3,4,5,6"
numberStr2=numberStr1.split(",");
numberStr2=numberStr2.concat(schose);
numberStr2=numberStr2.removerepeat();
if(numberStr2.length<1)
{
clearInterval(timer);
show.innerText+="选择结束,进行下一次";
numberStr1="1,2,3,4,5,6"
numberStr2=numberStr1.split(",");
document.forms[0].elements[0].value="";
schose.length=0;
}
var rndIndex=Math.round(Math.random() * numberStr2.length)
if (rndIndex<1){
document.forms[0].elements[0].value=numberStr2[rndIndex]
}
else{
document.forms[0].elements[0].value=numberStr2[rndIndex-1]
}
}

function buttonclickevent(button){
if ((button.value=="开始")||(button.value=="继续")){
button.value="选中";
return timer=setInterval("startrnd()",60);
}
else{
button.value="继续";
//show.innerText+=document.forms[0].elements[0].value
schose[schose.length] = document.forms[0].elements[0].value
show.innerText = schose.join(",")
clearInterval(timer);
return timer;
}
}
function defaultfocus(){
document.all.button1.focus();
}

Array.prototype.removerepeat=function()
{
var k = 0,j = 0,n = 0;
var ok = new Array();
for(var i=0;i<this.length;i++)
{
for(j=i+1;j<this.length;j++)
{
if(this[i]==this[j])
{
this[i] = null;
this[j] = null;
}
}
}
for(var i=0;i<this.length;i++)if(this[i])ok[ok.length]=this[i];
//for(m in this)ok[k++]=this[m];
return ok;
}
//-->
</script>
</head>

<body scroll="no" onLoad="defaultfocus()">
<form method="POST">
<table>
<tr>
<td width="583" height="114" align="center" background="image/kuang.gif">
<input name="xyid" type=text size=11 maxlength=11>
<div id="show"></div>
</td>
</tr>
</table>

<div align="center">
<br>
<br>
<br>
<input name="button1" type=button value="开始" onclick='buttonclickevent(this)' style="color: #0000000; border: 3px

double #FFFF00; font-size:25pt">
  

</div>
</form>
wwweasy 2004-06-16
  • 打赏
  • 举报
回复
把已显示出来的数存起来,然后做判断
tianzhou0374 2004-06-16
  • 打赏
  • 举报
回复
用数组.javascript数组长度是可以自增的.只要直接给值就可以了.类似于下边.
var s=new Array();
s[0]=1
s[1]=3
...
s[10000]=5
这样行了吧.呵呵.
tjgok 2004-06-16
  • 打赏
  • 举报
回复
把选中的存起来?如何存呢?只能用JS,还不能刷新页面,如何做到呢?
tianzhou0374 2004-06-16
  • 打赏
  • 举报
回复
老大,把选中的存起来,每次选完后比一下,如果选过再选一次不就行了吗?

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧