星期一, 9月 28, 2009

html做listbox單選

html做listbox很簡單,就select tag加個multiple屬性為true即可
但都mutiple了怎麼做單選... 好像在找碴
上網查一下 好像沒人做這麼無聊的事
但美工很機車... 只好自己來了 (johnny我恨你)
利用javascript動態讀一下

html
<select id="test1" multiple="true"> //設multiple為true
 //<option id='test1_opt1'>1</option>
 ...
 //就不多寫了,不過得先為option取可識別的名字
</select>


javascript ... 唔 其實是透過jquery
var lastSelectedID=-1;
$("select#test1").change(function(){
 var tmpLastSelectedID=-1;
 jQuery('option:selected', this).each(function(){
  //避開滑鼠直接選2個以上
  if(tmpLastSelectedID>0){
   $(this).attr("selected",false);
   return true;
  }

  //避開ctrl點選
  if (lastSelectedID==$(this).attr("id")){
   $(this).attr("selected",false);
   return true;
  }else{
   tmpLastSelectedID=id;
  }
 });
 lastSelectedID=tmpLastSelectedID;
});


p.s 不過避開滑鼠直接選2個以上還有問題 就是都是預設選到第一個

2 則留言:

Derek Leung 提到...

唉,幹嗎這樣麻煩…
加個size=10就行了︰
<select size=10>
<option>123</option>
<option>456</option>
<option>789</option>
</select>
沒有bug,連jQuery也不用。

fishjerky 提到...

哇靠~ 那我做這麼複雜是為了什麼...
受教受教...