代码如下
<table>
<tr>
<td>
<select name="comleft" id="comleft" size="5" multiple="true">
<option value="1" selected>员工1</option>
<option value="2">员工2</option>
<option value="3">员工vip</option>
<option value="4">员工3</option>
<option value="5">员工4</option>
<option value="6">员工5</option>
<option value="7">员工6</option>
</select>
</td>
<td align="center">
<input type="button" value=" >> "
onclick="moveMuti();" />
<br/>
<input type="button" value=" << "
onclick="moveMuti(document.getElementById('comright'), document.getElementById('comleft'));" />
<br/>
</td>
<td>
<select name="comright" id="comright" multiple="true" size="5">
</select>
</td>
</tr>
</table>
</BODY>
<script language="javascript">
<!-- function moveMuti(){
var options = document.getElementById('comleft').options;
var _options = document.getElementById('comright').options;
var flag = false;
for(var i = 0; i < options.length; i++){
if(options[i].selected){
if(options[i].value=="3") {
flag = true;
}
document.getElementById('comright').appendChild(options[i]);
i -= 1;
}
} if(!flag) {
_options.selectedIndex = -1;
}
if(_options[_options.length-1].value=="3"){
//如果是vip,置顶
moveTop();
}
} function moveTop() {
//alert(123);
var topright = document.getElementById('comright');
var _opts = [];
for(var i =topright.options.length -1 ; i >= 0; i--)
{
if(topright.options[i].selected)
{ _opts.push(topright.options[i]);
var bac;
topright.remove(i);
}
}
var index = 0 ;
for(var t = _opts.length-1 ; t>=0 ; t--)
{
var opt = new Option(_opts[t].text,_opts[t].value);
opt.selected = true;
topright.options.add(opt, index++);
}
}
//-->
</script> 代码是这样的,把左边的多选框的内容移到右边的多选框,如果移到的是VIP,则VIP到了右边后置顶。
代码在FF下是没问题的。
在IE下运行,如果移到VIP则报“无效索引”的错误提示。
在Ediplus下运行,如果移到VIP则报“未指明的错误”。
更奇怪的是如果把 function moveTop() 的第一行注释放开 alert一下,就IE下也正常了。
大侠们帮帮看看。
<table>
<tr>
<td>
<select name="comleft" id="comleft" size="5" multiple="true">
<option value="1" selected>员工1</option>
<option value="2">员工2</option>
<option value="3">员工vip</option>
<option value="4">员工3</option>
<option value="5">员工4</option>
<option value="6">员工5</option>
<option value="7">员工6</option>
</select>
</td>
<td align="center">
<input type="button" value=" >> "
onclick="moveMuti();" />
<br/>
<input type="button" value=" << "
onclick="moveMuti(document.getElementById('comright'), document.getElementById('comleft'));" />
<br/>
</td>
<td>
<select name="comright" id="comright" multiple="true" size="5">
</select>
</td>
</tr>
</table>
</BODY>
<script language="javascript">
<!-- function moveMuti(){
var options = document.getElementById('comleft').options;
var _options = document.getElementById('comright').options;
var flag = false;
for(var i = 0; i < options.length; i++){
if(options[i].selected){
if(options[i].value=="3") {
flag = true;
}
document.getElementById('comright').appendChild(options[i]);
i -= 1;
}
} if(!flag) {
_options.selectedIndex = -1;
}
if(_options[_options.length-1].value=="3"){
//如果是vip,置顶
moveTop();
}
} function moveTop() {
//alert(123);
var topright = document.getElementById('comright');
var _opts = [];
for(var i =topright.options.length -1 ; i >= 0; i--)
{
if(topright.options[i].selected)
{ _opts.push(topright.options[i]);
var bac;
topright.remove(i);
}
}
var index = 0 ;
for(var t = _opts.length-1 ; t>=0 ; t--)
{
var opt = new Option(_opts[t].text,_opts[t].value);
opt.selected = true;
topright.options.add(opt, index++);
}
}
//-->
</script> 代码是这样的,把左边的多选框的内容移到右边的多选框,如果移到的是VIP,则VIP到了右边后置顶。
代码在FF下是没问题的。
在IE下运行,如果移到VIP则报“无效索引”的错误提示。
在Ediplus下运行,如果移到VIP则报“未指明的错误”。
更奇怪的是如果把 function moveTop() 的第一行注释放开 alert一下,就IE下也正常了。
大侠们帮帮看看。
var topright = document.getElementById('comright');
topright.focus();我也碰到过,但我有时测试几次就过去了。
你加上一句就可以过去了,具体原因我也搞不清。
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY>
<table>
<tr>
<td>
<select name="comleft" id="comleft" size="5" multiple="true">
<option value="1" selected>?工1 </option>
<option value="2">?工2 </option>
<option value="3">?工vip </option>
<option value="4">?工3 </option>
<option value="5">?工4 </option>
<option value="6">?工5 </option>
<option value="7">?工6 </option>
</select>
</td>
<td align="center">
<input type="button" value=" >> "
onclick="moveMuti();" />
<br/>
<input type="button" value=" < < "
onclick="moveMuti(document.getElementById('comright'), document.getElementById('comleft'));" />
<br/>
</td>
<td>
<select name="comright" id="comright" multiple="true" size="5">
</select>
</td>
</tr>
</table>
</BODY>
<script language="javascript">
<!-- function moveMuti(){
var options1 = document.getElementById('comleft').options;
var _options = document.getElementById('comright').options;
var flag = false;
for(var i = 0; i < options1.length -1; i++){
if(options1[i].selected){
if(options1[i].value=="3") {
var opt = new Option(options1[i].text,options1[i].value)
document.getElementById('comright').options.add(opt,0);
options1.remove(options1[i])
}
else{
document.getElementById('comright').appendChild(options1[i]);
}
}
}
}
//-->
</script>
</BODY>
</HTML>