把另一个问题参考代码改了改,楼主凑合用,哈免费赠送:无需按 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>
<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>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货