首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

两个select互相操作,与ajax的一点有关问题

2012-02-04 
两个select互相操作,与ajax的一点问题;需求是做两个select,设定成为multiple两个框分别放不同人,可以互相

两个select互相操作,与ajax的一点问题;
需求是做两个select   ,设定成为multiple;

两个框分别放不同人,可以互相添加;
双击左面框的人,就会自动添加到右边,在左边这里删除这个人;
这些现在都实现了;

由于每边的人太多了。所以做了一个ajax效果的搜索,根据搜索条件,填充select;
缩小范围;

但是用ajax添加select以后,一但把所有的项目都移走的话,这边的select也就自动被删除了。这是为什么?

如果不用ajax搜索,把所有项目都移动到另一边。select只是空了,并没有被删除;

下面是两个select移动的代码;

//====================================================================
  function   SelItem(sel_source,   sel_dest)
{
//首先拷贝所有项目到目标:
var   sel_source_len   =   sel_source.length;
var   i   =   0;
for   (var   j=0;   j <sel_source_len;   j++)
{
        if(sel_source.options[i].selected)
        {
        var   SelectedText   =   sel_source.options[i].text;
        var   SelectedValue   =   sel_source.options[i].value;
        for   (var   y=0;y <sel_dest.length;y++)
        {
        if(sel_dest.options[y].text== " ")
        {
        sel_dest.options.remove(y);
        }
        }
        sel_dest.options.add(new   Option(SelectedText,SelectedValue));
        sel_source.options.remove(i);
        }
else
{
        i++;
}
}
}
        function   MoveAllItems(sel_source,   sel_dest)
{
//首先拷贝所有项目到目标:
var   sel_source_len   =   sel_source.length;
for   (var   j=0;   j <sel_dest.length;   j++)
{
if(sel_dest.options[j].text== " ")
{
sel_dest.options.remove(j);
}
}
for   (var   j=0;   j <sel_source_len;   j++)
{
var   SelectedText   =   sel_source.options[j].text;
var   SelectedValue   =   sel_source.options[j].value;
sel_dest.options.add(new   Option(SelectedText,SelectedValue));
}
while   ((k=sel_source.length-1)> =0)
{
sel_source.options.remove(k);
}
}
//================================================================
下面是异步数据以后,添加到指定select的方法;

//================================================================
        function   chkSearchResult(re)
        {
                var   xmlDoc   =   re.responseXML;
                var   select;
                var   success   =   getElementText( "success ",xmlDoc,0);
                if(success== "false ")
                {
                        alert( "没有查询到相关结果 ");
                        return   ;
                }
                switch($F( "sSide "))
                {


                        case   "left ":
                                select   =   $( "leftgroup ");
                                break;
                        case   "right ":
                                select   =   $( "rightgroup ")
                }
               
                var   personLength   =   getElementLength( "person ",xmlDoc);
                select.options.length=0;
                for(var   i=0;i <personLength;i++)
                {
                        var   id   =   getElementText( "id ",xmlDoc,i);
                        var   name   =   getElementText( "name ",xmlDoc,i);
                        var   newOption   =   document.createElement( "option ");
                        newOption.setAttribute( "value ",id);
                        newOption.innerHTML=name;
                        select.appendChild(newOption);
                }
               
        }
//==============================================================

[解决办法]
唉,搞不清楚~~你先说这个东西是做什么的好了,比较容易联想~~~

每次选了之后是不是把2边的信息存到后台?

热点排行