Re: [ JS ] JavaScript + 下拉式選單的問題??

看板Ajax作者 (Pablo Picasso G.)時間17年前 (2008/01/12 16:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《TonyQ (骨頭)》之銘言: : ※ 引述《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; //(乙) 這個方法可以,如下所示: else if(RET == 1) { options.length = 10; for(var i=0; i< 10; i++) options[i] = new Option(i+1); } : 設了length之後 後面如果有多的會自己刪掉 : 不然我記得把options[i]=null也會有同樣效果 這個不行!! : : 2. 第二個問題是:當我選擇乙的時後,按下Refresh(重新整理),第一個下拉式選單還是 : : 會停留在乙,可是,直接按下第二個選單的時後,卻不會出現乙應該出現的1~20。反而要 : : 先選擇甲或丙,才會出現正常的數值。還有就是我希望當User按下Refresh的時後,兩個 : : 選單都回覆到0的狀態,而不是第一個下拉式選單還停留在上一個的狀態。請問這個Bug該 : : 怎麼改?? : body onload的時候去把下拉式選單歸0 <body OnLoad="RRR()"> function RRR() { with(document.PID) { AAA.selectedIndex = 0; BBB.selectedIndex = 0; } return; } 多謝了!!瞭解!! -- _▃_ 老婆,我下班回來了,還買了禮物要... ╔═════════════╗ 老婆,我下班回來了,還買了禮物要... ║ ║ ] /\ 老婆,我下班回來了,還買了禮物要... 門的另一端,世界的真實 || 技術不錯嘛!"○ ○" 哇啊~好緊! ║ ║ ◣◥(|\ )) -(啪~啪!) @ Pablo Picasso G. ◥██◣ (噗滋!噗滋!)-/`○r27\"-(啊~喔~嗯~)╚═════════════╝ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.120.99.162
文章代碼(AID): #17Y7VKGv (Ajax)
文章代碼(AID): #17Y7VKGv (Ajax)