选择器,jsp

解决方案 »

  1.   

    如果数据量不是很大可以一次性载回,或用Ajax取返回搜
    两select框 <select size="10" multiple="true"> 
      

  2.   

    简单点用  showModalDialog 打开, 页面排版用Table或css+div,熟什么用什么
      

  3.   

    给个简单的吧// >>,假设左边的选框ID为id1,右边的为id2,内部由DIV构成
    // DIV点击事件
    $("div").bind("click", function() {
        var leftContain = $("#id1");
        var rightContain = $("#id2");
        var slt = $(this);
        $(this).appendTo(id2);
        $(this).remove();
    });其他的按钮基本参照上面的改写即可
      

  4.   

    做了个简单的效果,事件绑定使用的是addEventListener,请勿用低级IE测试。
    效果图:#container{
    width:700px;
    margin:0 auto;
    overflow:hidden;
    }
    .unselected{
    float:left;
    width:300px;
    }
    .select-btn{
    float:left;
    width:100px;
    height:100%;
    text-align:center;
    }
    .selected{
    float:left;
    width:300px;
    }
    select{
    width:300px;
    }
    <div id="container">
    <div class="unselected">
    <select size="8" multiple="multiple" id="unselected"></select>
    </div>
    <div class="select-btn">
    <button type="button" id="selectall">&gt;&gt;</button><br />
    <button type="button" id="selectone">&gt;</button><br />
    <button type="button" id="removeone">&lt;</button><br />
    <button type="button" id="removeall">&lt;&lt;</button>
    </div>
    <div class="selected">
    <select size="8" multiple="multiple" id="selected"></select>
    </div>
    </div>
    var data=[{label:"item1",value:1},{label:"item2",value:2},{label:"item3",value:3},{label:"item4",value:4},{label:"item5",value:5},{label:"item6",value:6},{label:"item7",value:7},{label:"item8",value:8},{label:"item9",value:9},{label:"item10",value:10},{label:"item11",value:11}];
    //初始化
    for(var i=0;i<data.length;i++){
    var item=document.createElement("option");
    item.text=data[i].label;
    item.value=data[i].value;
    item.initIndex=i;
    unselected.appendChild(item);
    }
    //选择全部
    selectall.addEventListener("click",function(){
    var items=[];
    for(var i=0;i<unselected.length;i++){
    items.push(unselected[i]);
    }
    select(items);
    },false);
    //选择部分
    selectone.addEventListener("click",function(){
    var items=[];
    for(var i=0;i<unselected.length;i++){
    if(unselected[i].selected){
    items.push(unselected[i]);
    }
    }
    select(items);
    },false);
    //移除全部
    removeall.addEventListener("click",function(){
    var items=[];
    for(var i=0;i<selected.length;i++){
    items.push(selected[i]);
    }
    remove(items);
    },false);
    //移除部分
    removeone.addEventListener("click",function(){
    var items=[];
    for(var i=0;i<selected.length;i++){
    if(selected[i].selected){
    items.push(selected[i]);
    }
    }
    remove(items);
    },false);
    //选择
    function select(items){
    var i=0,j=0;
    for(;i<items.length;i++){
    while(selected[j]&&selected[j].initIndex<items[i].initIndex){
    j++;
    }
    items[i].selected=false;
    selected.add(items[i],selected[j]);
    }
    }
    //移除
    function remove(items){
    var i=0,j=0;
    for(;i<items.length;i++){
    while(unselected[j]&&unselected[j].initIndex<items[i].initIndex){
    j++;
    }
    items[i].selected=false;
    unselected.add(items[i],unselected[j]);
    }
    }