<select multiple id="sel">
   <option value="1">11</option>
   <option value="2">22</option>
   <option value="3">33</option>
   <option value="4">44</option>
</select><input type="text" value="" id="txt" size="100"/>
<input type="button" value="确定" id="btn"/>
<script>
  function $(obj) {
    return (typeof obj=="object")?obj:document.getElementById(obj);
  }
var btn = $("btn");
var txt = $("txt");
var sel = $("sel")
btn.onclick = function() {
  for(var i=0;i<sel.length;i++) {
     if(sel.options[i].selected) {
  txt.value += sel.options[i].value;
 }
  } 
}
</script>

解决方案 »

  1.   

    看来楼主的要求很高啊.你可以在 body 里得到 ctrl按下的事件,用这个来处理
      

  2.   

    恩,我已经实现了select的在"CTRL"下的转换,现在又出现了新的问题,如何在multiple情况下实现拖拽多条记录.老是出现这样的情况,已经选中了多条记录,想要进行拖拽,当鼠标点过去的时候,又把之前选中的条目重置了.怎么解决这个问题?百思不得其解.
      

  3.   

    function keyDowm(){
    if(window.event.keyCode==17){
    sel.multiple=true;
    }
    }
    <select id="sel" onkeydown="keyDowm();">
    <option>aaaaaaaaaa</option>
    <option>bbbbbbbbbb</option>
    <option>cccccccccc</option>
    <option>dddddddddd</option>
    </select>