帮帮忙:急!分不够在加.

liufeng_ok 2002-12-19 07:15:09
这是代码:它的功能一测试即知.
帮忙找一下错误.
另外还有一个重置功能,请给一下思路,或代码.
<html>
<script language="javascript">
//+----------------------------------------------------------------------+
//开始
var userSelect = new Object();
// +---------------------------------------+
//配置
userSelect.obj_slt_name = new Array();
userSelect.obj_slt_name[userSelect.obj_slt_name.length] = "0";
//userSelect.obj_slt_name[userSelect.obj_slt_name.length] = "1";

// +---------------------------------------+
//测试用
var value_right = new Array(),
value_left = new Array(),
value_select = new Array();

value_right[value_right.length] = 111;
value_right[value_right.length] = 222;
value_right[value_right.length] = 333;
value_right[value_right.length] = 444;
value_right[value_right.length] = 555;
value_right[value_right.length] = 666;
value_right[value_right.length] = 777;
value_right[value_right.length] = 888;
value_right[value_right.length] = 999;
value_right[value_right.length] = 000;
// +---------------------------------------+
//初始化
userSelect.init = function(obj_slt_name)
{
}
// +---------------------------------------+
//还原
userSelect.resect =function(obj_slt_name)
{

}
// +---------------------------------------+
//上移
userSelect.up = function(obj_slt)
{
obj_slt = "document.all."+obj_slt;
userSelect.move(obj_slt, "up");
}
// +---------------------------------------+
//下移
userSelect.down = function(obj_slt)
{
obj_slt = "document.all."+obj_slt;
userSelect.move(obj_slt, "down");
}
// +---------------------------------------+
//移动
userSelect.move = function(obj_slt, act)
{
if(act=="up")
for(i=0;i<obj_slt.options.length;i++)
if(obj_slt.options[i].selected){
if(i==0)break;
obj_slt.options[i].swapNode(obj_slt.options[i-1]);
}
if(act=="down")
for(i=obj_slt.options.length-1;i>=0;i--)
if(obj_slt.options[i].selected){
if(i==obj_slt.options.length-1)break;
obj_slt.options[i].swapNode(obj_slt.options[i+1]);
}
}
// +---------------------------------------+
//添加
userSelect.add = function(obj_slt, res_slt)
{
obj_slt = "document.all."+obj_slt;
res_slt = "document.all."+res_slt;
userSelect.barter(obj_slt, res_slt);
}
// +---------------------------------------+
//删除
userSelect.del = function(obj_slt, res_slt)
{
obj_slt = "document.all."+obj_slt;
res_slt = "document.all."+res_slt;
userSelect.barter(obj_slt, res_slt);

}
// +---------------------------------------+
//交换
userSelect.barter = function(obj_selt, res_slt)
{
for(i=res_slt.options.length-1;i>=0;i--)
if(res_slt.options[i].selected){
op=res_slt.options[i].cloneNode(true);
obj_selt.appendChild(op);
res_slt.options[i]=null;
}
}
// +---------------------------------------+
//生成
//配置
for (s=0; s<userSelect.obj_slt_name.length; s++) {
var strs = new Array();
//定义表格
strs[strs.length] = "<TABLE width='75%' border='1'>";
strs[strs.length] = "<TR>";
strs[strs.length] = "<TD rowspan='2'>";
//定义左列表框
strs[strs.length] = "<SELECT name="+userSelect.obj_slt_name[s]+" size='10' multiple>";
strs[strs.length] = "</SELECT>";
strs[strs.length] = "</TD>";

strs[strs.length] = "<TD>";
strs[strs.length] = "<INPUT name="+userSelect.obj_slt_name[s]+"res"+" id="+userSelect.obj_slt_name[s]+" type='button' onClick='userSelect.add("+this.name+", "+this.id+")' value='添加'>";
strs[strs.length] = "</TD>";

strs[strs.length] = "<TD>";
//定义右列表框
strs[strs.length] = "<SELECT name="+userSelect.obj_slt_name[s]+"res"+" size='10' multiple id='s1'>";
//循环生成列表值
for (k =0; k<value_right.length; k++) {
strs[strs.length] = "<OPTION value="+value_right[k]+">"+value_right[k]+"</OPTION>";
}
strs[strs.length] = "</SELECT>";
strs[strs.length] = "</TD>";
strs[strs.length] = "</TR>";

strs[strs.length] = "<TR>";
strs[strs.length] = "<TD>";
strs[strs.length] = "<INPUT name="+userSelect.obj_slt_name[s]+" id="+userSelect.obj_slt_name[s]+"res"+" type='button' onClick='userSelect.del("+this.name+", "+this.id+")' value='删除'>";
strs[strs.length] = "</TD>";
strs[strs.length] = "</TR>";

strs[strs.length] = "<TR>";
strs[strs.length] = "<TD>";
strs[strs.length] = "<INPUT type='button' id="+userSelect.obj_slt_name[s]+" name='Submit3' onClick='userSelect.up("+this.id+")' value='上移'>";
strs[strs.length] = "<INPUT type='button' id="+userSelect.obj_slt_name[s]+" name='Submit4' onClick='userSelect.down(document.all."+this.id+")' value='下移'>";
strs[strs.length] = "</TD>";
strs[strs.length] = "<TD> </TD>";
strs[strs.length] = "<TD> </TD>";
strs[strs.length] = "</TR>";
strs[strs.length] = "</TABLE>";
}
//显示列表框
for (i=0; i<strs.length; i++) {
str = "document.write(strs[i])";
alert("adksf");
eval(str);
}
//+----------------------------------------------------------------------+
</SCRIPT>
</html>
...全文
28 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzh_seagull 2002-12-20
  • 打赏
  • 举报
回复
id重复了,程序写的很乱,修改一下在说吧
freefalcon 2002-12-19
  • 打赏
  • 举报
回复
补上reset功能,不过觉得reset写得不好,没有找到比较直接的函数

<SELECT multiple name=sel1 size=6> <OPTION>1</OPTION> <OPTION>3</OPTION>
<OPTION>5</OPTION> <OPTION>2</OPTION> <OPTION>4</OPTION>
<OPTION>6</OPTION></SELECT> <SELECT multiple name=sel2 size=6></SELECT> <INPUT

onclick=moveTo(sel1,sel2) type=button value=">>"> <INPUT onclick=moveTo(sel2,sel1) type=button

value="<<"> <INPUT onclick='move(sel1,"up")' type=button value=up> <INPUT

onclick='move(sel1,"down")' type=button value=down>
<INPUT onclick='reset(sel1,sel2)' type=button value=reset>
<SCRIPT>
//**freefalcon**//
function moveTo(sel1,sel2){
for(i=sel1.options.length-1;i>=0;i--)
if(sel1.options[i].selected){
op=sel1.options[i].cloneNode(true);
sel2.appendChild(op);
sel1.options[i]=null;
}
}
function move(sel,dir){
if(dir=="up")
for(i=0;i<sel.options.length;i++)
if(sel.options[i].selected){
if(i==0)break;
sel.options[i].swapNode(sel.options[i-1])
}
if(dir=="down")
for(i=sel.options.length-1;i>=0;i--)
if(sel.options[i].selected){
if(i==sel.options.length-1)break;
sel.options[i].swapNode(sel.options[i+1]);
}
}
var leftSel=sel1.cloneNode(true);
var rightSel=sel2.cloneNode(true);
function reset(sel1,sel2){
copy(sel1,leftSel);
copy(sel2,rightSel);
}
function copy(sel1,sel2){
for(i=sel1.length-1;i>=0;i--)
sel1.options[i]=null;
for(i=0;i<sel2.length;i++)
sel1.appendChild(sel2.options[i].cloneNode(true));
}
</SCRIPT>

liufeng_ok 2002-12-19
  • 打赏
  • 举报
回复
...郁闷中...
liufeng_ok 2002-12-19
  • 打赏
  • 举报
回复
<script language="javascript">
//+----------------------------------------------------------------------+
//开始
var userSelect = new Object();
// +---------------------------------------+
//配置
userSelect.obj_slt_name = new Array();
userSelect.obj_slt_name[userSelect.obj_slt_name.length] = "a";
userSelect.obj_slt_name[userSelect.obj_slt_name.length] = "b";
// +---------------------------------------+
//测试用
var value_right = new Array(),
value_left = new Array(),
value_select = new Array();

value_right[value_right.length] = "a";
value_right[value_right.length] = "b";
value_right[value_right.length] = "c";
value_right[value_right.length] = "d";
value_right[value_right.length] = "e";
value_right[value_right.length] = "f";
value_right[value_right.length] = "g";
value_right[value_right.length] = "h";
value_right[value_right.length] = "i";
value_right[value_right.length] = "j";
// +---------------------------------------+
//初始化
userSelect.init = function(obj_slt_name)
{

}
// +---------------------------------------+
//还原
userSelect.resect =function(obj_slt_name)
{

}
// +---------------------------------------+
//上移
userSelect.up = function(obj_slt)
{
obj_slt = "document.all."+obj_slt;
userSelect.move(obj_slt, "up");
}
// +---------------------------------------+
//下移
userSelect.down = function(obj_slt)
{
obj_slt = "document.all."+obj_slt;
userSelect.move(obj_slt, "down");
}
// +---------------------------------------+
//移动
userSelect.move = function(obj_slt, act)
{
if(act=="up")
for(i=0;i<obj_slt.options.length;i++)
if(obj_slt.options[i].selected){
if(i==0)break;
obj_slt.options[i].swapNode(obj_slt.options[i-1]);
}
if(act=="down")
for(i=obj_slt.options.length-1;i>=0;i--)
if(obj_slt.options[i].selected){
if(i==obj_slt.options.length-1)break;
obj_slt.options[i].swapNode(obj_slt.options[i+1]);
}
}
// +---------------------------------------+
//添加
userSelect.add = function(obj_slt, res_slt)
{
obj_slt = "document.all."+obj_slt;
res_slt = "document.all."+res_slt;
eval("userSelect.barter("+obj_slt+", "+res_slt+")");
}
// +---------------------------------------+
//删除
userSelect.del = function(obj_slt, res_slt)
{
obj_slt = "document.all."+obj_slt;
res_slt = "document.all."+res_slt;
eval("userSelect.barter("+obj_slt+", "+res_slt+")");

}
// +---------------------------------------+
//交换
userSelect.barter = function(obj_selt, res_slt)
{
for(i=res_slt.options.length-1;i>=0;i--)
if(res_slt.options[i].selected){
op=res_slt.options[i].cloneNode(true);
obj_selt.appendChild(op);
res_slt.options[i]=null;
}
}
// +---------------------------------------+
//生成
//配置
for (s=0; s<userSelect.obj_slt_name.length; s++) {
var strs = new Array();
//定义表格
strs[strs.length] = "<TABLE width='75%' border='1'>";
strs[strs.length] = "<TR>";
strs[strs.length] = "<TD rowspan='2'>";
//定义左列表框
strs[strs.length] = "<SELECT name=\'"+userSelect.obj_slt_name[s]+"\' id=\'"+userSelect.obj_slt_name[s]+"\'size='10' multiple>";
strs[strs.length] = "</SELECT>";
strs[strs.length] = "</TD>";

strs[strs.length] = "<TD>";
strs[strs.length] = "<INPUT name=\'"+userSelect.obj_slt_name[s]+"res"+"\' id=\'"+userSelect.obj_slt_name[s]+"\' type='button' onClick='userSelect.add(this.name, this.id)' value='添加'>";
strs[strs.length] = "</TD>";

strs[strs.length] = "<TD>";
//定义右列表框
strs[strs.length] = "<SELECT name=\'"+userSelect.obj_slt_name[s]+"res"+"\' size='10' multiple id='s1'>";
//循环生成列表值
for (k =0; k<value_right.length; k++) {
strs[strs.length] = "<OPTION value=\'"+value_right[k]+"\'>"+value_right[k]+"</OPTION>";
}
strs[strs.length] = "</SELECT>";
strs[strs.length] = "</TD>";
strs[strs.length] = "</TR>";

strs[strs.length] = "<TR>";
strs[strs.length] = "<TD>";
strs[strs.length] = "<INPUT name=\'"+userSelect.obj_slt_name[s]+"\' id=\'"+userSelect.obj_slt_name[s]+"res"+"\' type='button' onClick='userSelect.del(this.name, this.id)' value='删除'>";
strs[strs.length] = "</TD>";
strs[strs.length] = "</TR>";

strs[strs.length] = "<TR>";
strs[strs.length] = "<TD>";
strs[strs.length] = "<INPUT type='button' id="+userSelect.obj_slt_name[s]+" name='Submit3' onClick='userSelect.up(this.id)' value='上移'>";
strs[strs.length] = "<INPUT type='button' id="+userSelect.obj_slt_name[s]+" name='Submit4' onClick='userSelect.down(this.id)' value='下移'>";
strs[strs.length] = "</TD>";
strs[strs.length] = "<TD> </TD>";
strs[strs.length] = "<TD> </TD>";
strs[strs.length] = "</TR>";
strs[strs.length] = "</TABLE>";

//显示列表框
for (i=0; i<strs.length; i++) {
str = "document.write(strs[i])";
//alert(i);
//alert(strs[i]);

eval(str);
}
}
//+----------------------------------------------------------------------+
</SCRIPT>
liufeng_ok 2002-12-19
  • 打赏
  • 举报
回复
freefalcon(心宇):
能给一下重置的思路,或代码吗?
freefalcon 2002-12-19
  • 打赏
  • 举报
回复
<SELECT multiple name=sel1 size=6> <OPTION>1</OPTION> <OPTION>3</OPTION>
<OPTION>5</OPTION> <OPTION>2</OPTION> <OPTION>4</OPTION>
<OPTION>6</OPTION></SELECT> <SELECT multiple name=sel2 size=6></SELECT> <INPUT

onclick=moveTo(sel1,sel2) type=button value=">>"> <INPUT onclick=moveTo(sel2,sel1) type=button

value="<<"> <INPUT onclick='move(sel1,"up")' type=button value=up> <INPUT

onclick='move(sel1,"down")' type=button value=down>
<SCRIPT>
//**freefalcon**//
function moveTo(sel1,sel2){
for(i=sel1.options.length-1;i>=0;i--)
if(sel1.options[i].selected){
op=sel1.options[i].cloneNode(true);
sel2.appendChild(op);
sel1.options[i]=null;
}
}
function move(sel,dir){
if(dir=="up")
for(i=0;i<sel.options.length;i++)
if(sel.options[i].selected){
if(i==0)break;
sel.options[i].swapNode(sel.options[i-1])
}
if(dir=="down")
for(i=sel.options.length-1;i>=0;i--)
if(sel.options[i].selected){
if(i==sel.options.length-1)break;
sel.options[i].swapNode(sel.options[i+1]);
}
}
</SCRIPT>

liufeng_ok 2002-12-19
  • 打赏
  • 举报
回复
右边列表框的选项可以向左移动,或者移回去,且左边的选项可以上下移动?
yes
wgrabob1 2002-12-19
  • 打赏
  • 举报
回复
重置功能是最简单的在没有操作前读取数据,操作完后写回
其他就麻烦了。。。。。。。。。。。
希默软件 2002-12-19
  • 打赏
  • 举报
回复
什么意思?

右边列表框的选项可以向左移动,或者移回去,且左边的选项可以上下移动?

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧