MozTW 討論區
https://forum.moztw.org/

javascript select option tag 無法點選的問題
https://forum.moztw.org/viewtopic.php?f=2&t=17948
1 頁 (共 1 頁)

發表人:  shogun1234 [ 2007-03-11, 06:43 ]
文章主題 :  javascript select option tag 無法點選的問題

最近寫個簡單的網頁
裏面有用到
javascript 來產生選單.
選單分成三部份.
第一欄位select tag 是選電影名稱 (一開始就有顯示出來)).
第二個select選項是 選 星期 (要點選電影名稱才會顯示關聯星期)
第三個select 選項是 時間.(要點選電影名稱才會顯示關聯時間)

可是出現一個問題, 第2和第3的select選單是用 javascript 產生
結果變成看得到資料, 也可以用滑鼠拉出選單看所有的select option 內容. 可是當選定想要的資料時, 比如說 下拉選單的第 3比資料. 用滑鼠點第3筆. 點好了, 畫面依然停留在 第1比資料.

請問該怎麼解決這樣的問題?

底下是我的script

順便問一下, 底下的code 哪一部分要修改才能讓ie 也可以看得到?

代碼:
function chooseFilm(){
   clean();   
   document.forms[0].film_.value = document.forms[0].film.value;
   if(document.forms[0].film.value == ""){
      alert("please choose a film first!");
      clean();
      document.forms[0].day.disabled = true;
      document.forms[0].time.disabled = true;
      return false;
   }
   chooseDay();
}
function chooseDay(){
   if(document.forms[0].film_.value == ""){//should not happened!
      alert("no film has choosen!");
      return false;
   }
   document.forms[0].day.disabled = false;
   var filmid = document.forms[0].film_.value;
   var day_array = new Array();
   for(i=0;i<showid_filmid_day_array.length;i++){
      if(showid_filmid_day_array[i][1] == filmid){
         day_array.push(showid_filmid_day_array[i]);
      }
   }
   //construct day select tag
   var day_cache_array = new Array();

   for(i=0;i<day_array.length;i++){
      var showid = day_array[i][0];
      var filmid = day_array[i][1];
      var day = day_array[i][2];
      if(day_cache_array.indexOf(day_array[i][2]) == -1 ){
         day_cache_array.push(day_array[i][2]);   
      }   
   }//for
   var ttt = document.forms[0].day.options.length;
   for(i=0;i<ttt;i++){
      document.forms[0].day.options[i] = null;
   }
   for(i=0;i<day_cache_array.length;i++){
      document.forms[0].day.options[i] =
         new Option(day_cache_array[i], day_cache_array[i]);
   }
   chooseTime();
}
function chooseTime(){
   if(document.forms[0].film_.value == ""){//should not happened!
      alert("no film has choosen!");
      return false;
   }
   document.forms[0].time.disabled = false;
   var filmid = document.forms[0].film_.value;
   var time_array = new Array();
   for(i=0;i<showid_filmid_time_array.length;i++){
      if(showid_filmid_time_array[i][1] == filmid){
         time_array.push(showid_filmid_time_array[i]);
      }
   }

   //construct day select tag
   var time_cache_array = new Array();
   for(i=0;i<time_array.length;i++){
      var showid = time_array[i][0];
      var filmid = time_array[i][1];
      var time = time_array[i][2];
      if(time_cache_array.indexOf(time) == -1 ){
         time_cache_array.push(time);   
      }   
   }//for

   var time_length = document.forms[0].time.length;
   while(time_length>0){
      document.forms[0].time.options[time_length] = null;
      time_length--;
   }
   for(i=0;i<time_cache_array.length;i++){
      document.forms[0].time.options[i] =
         new Option(time_cache_array[i], time_cache_array[i]);
   }
}
function validate(){
   if( document.forms[0].film.value == "" ){
      alert("please choose film name!");
      return false;   
   }
   if(document.forms[0].day.value == ""){
      alert("please choose a day!");
      return false;   
   }
   if(document.forms[0].time.value == ""){
      alert("please choose time!");
      return false;   
   }
   document.forms[0].submit();
}

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/