作者TonyQ (骨头)
看板Ajax
标题Re: [ JS ] JavaScript + 下拉式选单的问题??
时间Sat Jan 12 08:08:47 2008
※ 引述《PICASSO1 (Pablo Picasso G.)》之铭言:
: Browser: FireFox
: Language: HTML, JavaScript
: 原始码如下:
: <!-- Main.HTML -->
: <html>
: <head><title>哇~哈~哈~哈~哈~~~</title>
: <script language="JavaScript" src="JS.js"><!-- //--></script>
: </head>
: <body>
: <center>
: <form name="PID" mothed=POST>
: <select name="AAA" OnChange="Show(this.options.selectedIndex)">
: <option value="A">---</option>
: <option value="B">甲</option>
: <option value="C">乙</option>
: <option value="D">丙</option>
: </select>
: <br><br><br>
: <select name="BBB">---</select>
: </form>
: </center>
: </body>
: </html>
: // JS.js
: function Show(RET)
: {
: with(document.PID.BBB)
: if(RET == 0)
: {
: options[0] = new Option("---", "---");
: return;
: }
: else if(RET == 1)
: {
: for(var i=0; i< 10; i++)
: options[i] = new Option(i+1);
: /* for( ; i< 30; i++)
: options[i] = new Option(); */
: }
: else if(RET == 2)
: {
: for(var i=0; i< 20; i++)
: options[i] = new Option(i+1);
: /* for( ; i< 30; i++)
: options[i] = new Option(); */
: }
: else /* if(RET == 3) */
: {
: for(var i=0; i< 30; i++)
: options[i] = new Option(i+1);
: /* for( ; i< 30; i++)
: options[i] = new Option();*/
: }
: return;
: }
: 我想请问一下,
: 1. 当我依序选择甲、乙、丙的时後,可以正常显示1~10、1~20、1~30;可是当我从反方
: 向选择的时後(丙、乙、甲),却都只出现1~30。感觉上有点像是当我先选择丙,再选择乙
: 的时後、後面的21~30没有把它清掉;再选择甲,後面的11~30又没把它清掉。我有想到
: *.JS档里注解的部份,可是如此一来甲和乙的下拉式选单会变得很丑,会多一大堆没用的
: 空白,请问这该怎麽改比较好??
把注解的地方改成像下面这样
options.length=10; //(甲)
options.length=20; //(乙)
设了length之後 後面如果有多的会自己删掉
不然我记得把options[i]=null也会有同样效果
: 2. 第二个问题是:当我选择乙的时後,按下Refresh(重新整理),第一个下拉式选单还是
: 会停留在乙,可是,直接按下第二个选单的时後,却不会出现乙应该出现的1~20。反而要
: 先选择甲或丙,才会出现正常的数值。还有就是我希望当User按下Refresh的时後,两个
: 选单都回覆到0的状态,而不是第一个下拉式选单还停留在上一个的状态。请问这个Bug该
: 怎麽改??
body onload的时候去把下拉式选单归0
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 语 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼
*◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂
~telnet://tony1223.no-ip.info
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.59.247