会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
【 认真工作,享受生活 】
笑中千关过,愁内百事哀,争胜是祸,繁华似梦,平淡是福。
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
公告
【JavaScript】列表元素上下左右移动:Select和Option的应用
Posted on
2009-01-04 11:18
qiqi
阅读(
814
) 评论(
1
)
编辑
收藏
举报
共同学习,欢迎转载。转载请注明地址【http://blog.csdn.net/majianan/archive/2008/12/26/3614255.aspx】,谢谢O(∩_∩)O!
功能如下:
支持一次选中多项在左右列表中来回移动
CSS
.Net
C++
JavaScript
Java
HTML
代码如下:
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
>
<
HTML
>
<
HEAD
>
<
TITLE
>
New Document
</
TITLE
>
<
META
NAME
="Author"
CONTENT
="majianan"
>
<
script
language
="javascript"
>
var
currentSel
=
null
;
function
move(){
if
(arguments.length
==
1
){
moveUp(arguments[
0
]);
}
else
if
(arguments.length
==
2
){
moveRight(arguments[
0
],arguments[
1
]);
}
}
function
moveUp(direction){
if
(currentSel
==
null
)
return
;
var
index
=
currentSel.selectedIndex;
if
(direction){
//
up
if
(index
==
0
)
return
;
var
value
=
currentSel.options[index
-
1
].value;
var
text
=
currentSel.options[index
-
1
].text;
currentSel.options[index
-
1
].value
=
currentSel.options[index].value;
currentSel.options[index
-
1
].text
=
currentSel.options[index].text;
currentSel.options[index].value
=
value;
currentSel.options[index].text
=
text;
currentSel.options[index].selected
=
false
;
currentSel.options[index
-
1
].selected
=
true
;
}
else
{
//
down
if
(index
==
(currentSel.length
-
1
))
return
;
var
value
=
currentSel.options[index
+
1
].value;
var
text
=
currentSel.options[index
+
1
].text;
currentSel.options[index
+
1
].value
=
currentSel.options[index].value;
currentSel.options[index
+
1
].text
=
currentSel.options[index].text;
currentSel.options[index].value
=
value;
currentSel.options[index].text
=
text;
currentSel.options[index].selected
=
false
;
currentSel.options[index
+
1
].selected
=
true
;
}
}
function
moveRight(src,des){
if
(src.selectedIndex
==-
1
){
alert(
"
Please select first!
"
);
return
;
}
for
(
var
i
=
0
;i
<
src.length;i
++
){
if
(src[i].selected){
var
op
=
document.createElement(
"
option
"
);
op.value
=
src.options[src.selectedIndex].value;
op.text
=
src.options[src.selectedIndex].text;
des.options.add(op);
src.remove(i);
i
--
;
}
}
}
function
setButton(obj){
if
(obj.length
==
0
)
return
;
currentSel
=
obj;
if
(obj.id
==
"
leftSel
"
){
document.getElementById(
"
btnLeft
"
).disabled
=
true
;
document.getElementById(
"
btnRight
"
).disabled
=
false
;
reSelect(document.getElementById(
"
rightSel
"
));
}
else
{
document.getElementById(
"
btnLeft
"
).disabled
=
false
;
document.getElementById(
"
btnRight
"
).disabled
=
true
;
reSelect(document.getElementById(
"
leftSel
"
));
}
}
function
reSelect(obj){
for
(
var
i
=
0
; i
<
obj.length; i
++
){
if
(obj[i].selected) obj[i].selected
=
false
;
}
}
</
script
>
</
HEAD
>
<
BODY
>
<
form
id
="form1"
>
<
table
width
="40%"
align
="center"
>
<
tr
>
<
td
>
<
input
type
="button"
value
=" Up "
id
="btnUp"
onClick
="move(true);"
style
="width:65"
/>
<
br
/>
<
input
type
="button"
value
=" Down "
id
="btnDowm"
onClick
="move(false);"
style
="width:65"
/>
</
td
>
<
td
>
<
select
multiple id
="leftSel"
onclick
="setButton(this)"
ondblclick
="document.getElementById('btnRight').click()"
style
="height:200px;width:100px;"
>
<
optgroup
label
="Left List"
/>
<
option
value
="1"
>
Java
</
option
>
<
option
value
="2"
>
JavaScript
</
option
>
<
option
value
="3"
>
C++
</
option
>
<
option
value
="4"
>
HTML
</
option
>
</
select
>
</
td
>
<
td
>
<
input
type
="button"
value
=" >> "
id
="btnRight"
onClick
="move(document.getElementById('leftSel'),document.getElementById('rightSel'));"
style
="width:65"
/>
<
br
/>
<
input
type
="button"
value
=" << "
id
="btnLeft"
onClick
="move(document.getElementById('rightSel'),document.getElementById('leftSel'));"
style
="width:65"
/>
</
td
>
<
td
>
<
select
multiple id
="rightSel"
onclick
="setButton(this)"
ondblclick
="document.getElementById('btnLeft').click()"
style
="height:200px;width:100px;"
>
<
optgroup
label
="Right List"
/>
<
option
value
="5"
>
CSS
</
option
>
<
option
value
="6"
>
.Net
</
option
>
</
select
>
</
td
>
</
tr
>
</
table
>
</
form
>
</
BODY
>
</
HTML
>
刷新页面
返回顶部
Powered by:
博客园
Copyright © 2025 qiqi
Powered by .NET 9.0 on Kubernetes