把另一个问题参考代码改了改,楼主凑合用,哈免费赠送:无需按 shift 或 ctrl 键就可以多选!代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
<script language="JavaScript">
<!--//-->
</script>
 </head>
<body>
    <select id="oselect" name="cars" size="10" multiple>
        <option value="BMW">宝马</option>
        <option value="Porsche">保时捷</option>
        <option value="Benz">奔驰</option>
        <option value="Santana">桑塔纳</option>
        <option value="LK">林肯</option>
        <option value="?">标志</option>
        <option value="Bus">大公共</option>
    </select>
    <input type="button" id="btnCopy" value=">>">
    <select id="oselectCopy" name="cars2" size="10" multiple>
    </select>
    <input type="button" id="btnShowSelected" value="查看选中项索引">
    
    <span id="spaOutput"></span>
</body>
<script language="JavaScript">
<!--String.prototype.trimEnd = function(trimString) {
    var re = new RegExp(trimString+"*$", "g");
    return this.replace(re, "");
};Array.prototype.indexOf = function(itemValue) {
    var nIndex = -1;
    for (var i=0; i<this.length; i++)
    {
        if (this[i] == itemValue) nIndex = i;
    }
    return nIndex;
};
var oSpan = document.getElementById("spaOutput");
var oSeleLeft = document.getElementById("oSelect");
var oSeleRight = document.getElementById("oselectCopy");
var oBtn = document.getElementById("btnShowSelected");
var oCopy = document.getElementById("btnCopy");oCopy.onclick = function() {
    var aSelectedIndexes = getSelectedIndexes(oSeleLeft);
    for (var i=0; i<aSelectedIndexes.length; i++)
    {
        var oOption = document.createElement("OPTION");
        oOption.text = oSeleLeft.options[aSelectedIndexes[i]].text;
        oOption.value = oSeleLeft.options[aSelectedIndexes[i]].value;
        oSeleRight.options.add(oOption);
    }
};
oBtn.onclick = function() {
    alert(getSelectedIndexes(oSeleLeft));
};function getSelectedIndexes(oSeleLeft)
{
    var aSelectedIndexes = new Array();    for (var i=0; i<oSeleLeft.options.length; i++)
    {
        if (oSeleLeft.options[i].selected)
            aSelectedIndexes[aSelectedIndexes.length] = i;
    }    return aSelectedIndexes;
}oSeleLeft.onclick = function() {
    this.selectedIndexes = getSelectedIndexes(this);    // Debug
    oSpan.innerHTML += "<br />" + "onclick " + this.selectedIndexes;    if (this.selectedIndexes.length == 1)
        this.options[this.selectedIndexes].selected = false;
};
oSeleLeft.onchange = function() {
    // Debug
    oSpan.innerHTML += "<br />" + "onchange " + this.selectedIndex;    var j = this.selectedIndexes.indexOf(this.selectedIndex);
    if (j > -1)
    {
        this.options[this.selectedIndex].selected = false;
        this.selectedIndexes.splice(j, 1);
    }
    if (this.selectedIndexes.length > 0)
    {
        var nSelectedIndex;
        for (var i=0; i<this.selectedIndexes.length; i++)
        {
            nSelectedIndex = parseInt(this.selectedIndexes[i]);
            this.options[nSelectedIndex].selected = true;
        }
    }
};//-->
</script>
</html>