[导读]利用jquery 来操作 listbox和listbox内移动function listbox_move(listfrom,listto) { var size = $(" " + listfrom + " option") size(); var selsize = $(" " + listfrom + " option:s

利用jquery 来操作 listbox和listbox内移动

function listbox_move(listfrom,listto)         {             var size = $("#" + listfrom + " option").size();             var selsize = $("#" + listfrom + " option:selected").size();             if(size>0 && selsize>0)             {                 $.each($("#"+listfrom+" option:selected"), function(i,own){ //                    var stext = $(own).text(); //                    var svalue = $(own).val(); //                    $("#" + listto).append("<option value="" + svalue + "">" + stext + "</option>"); //                    $(own).remove();                     $(own).appendto($("#" + listto));                     $("#" + listfrom + "").children("option:first").attr("selected",true);                 });             }         }                 function listbox_order(listname,action)         {             var size = $("#"+listname+" option").size();             var selsize = $("#"+listname+" option:selected").size();             if(size > 0 && selsize > 0)             {                 $.each($("#"+listname+" option:selected"),function(i,own){                     if(action == "up")                     {                         $(own).prev().insertafter($(own));                     }                     else if(action == "down")//down时选中多个连靠则操作没效果                     {                         $(own).next().insertbefore($(own));                     }                 })             }         }

下面看一款详细代码

/*     name:twoway-select control for jquery     author:arn     date:2009-12-29     remark: ajax url返回数据必须是json格式{state:1,msg:'',fields:[]}             1、右边可以上下拖动             2、$('#div').twowaylist({url:'',onbeforesubmit:'',captioncolumn''});             3、$('#div').twowaylistinit({field_no:'xx',...});             4、$('#div').twowaylistsubmit({'rptid':$('#txtid').val(),'act':'rpt'}) //ajax url用到的参数 */ (function($){ $.addlist = function(t,p) {   if (t.checkbox) return false; //return if already exist     // apply default properties   p = $.extend({       items:[], //all items       captioncolumn:'caption', //显示的名称       isgroupcolumn:'group', //分组checkbox用到的字段       idcolumn:'field_no', //编号字段     height: 320, //default height     width: 'auto', //auto width     url: false, //ajax url     method: 'post', // data sending method     errormsg: 'connection error',     title: false,     datatype:'json',     onsuccess: false, // using a custom populate function     onbeforesubmit: false //提交之前处理事项     }, p);                 //create twoway-select class         var d = {          json2str:function(json)          {           var isarrobj = $.isarray(json);           var arr = [];           //           for (var key in json)           {            var k = isarrobj? '' :  key+":" ;                       if (typeof json[key] == 'object' && json[key] != null)             arr.push(k + d.json2str(json[key]));   //json对象            else             arr.push(k + "'" + decodeuricomponent(json[key]) +"'"); //普通值           }           return isarrobj ? '[' + arr.join(',') + ']' : '{' + arr.join(',') + '}';          },          str2json:function(str)          {           return eval('('+str+')');          },                    l2r:function(o){                                 var json = d.str2json($(o).attr('json'));                 var chk = document.createelement("input");                 //if group                 var chked = json[p.isgroupcolumn]==1?'checked':'';                 $(chk).attr({'type':'checkbox','id':'li'+json[p.idcolumn],'checked':chked});                 $(o).prepend(chk);     $(d.rdiv).find('ol').append(o);                 //change json value,if checkbox state changed                 $(o).find("input:checkbox").bind('click',function()     {         if($(this).attr('checked'))         {             json[p.isgroupcolumn] = 1;                     }else{                         json[p.isgroupcolumn] = 0;                     }                    $(o).attr("json",d.json2str(json));     });       $(d.vinput).val(d.getselected());             },             r2l:function(o){                 $(o).find(":checkbox").remove();           $(d.ldiv).find('ol').append(o);           $(d.vinput).val(d.getselected());             },             l2rall:function(){     $("li", $(d.ldiv).find('ol')).each(function(i,obj){         d.l2r(obj);     });                        },             r2lall:function(){     $("li", $(d.rdiv).find('ol')).each(function(i,obj){         d.r2l(obj);     });                         },             getselected:function(){                 var result=[];                     $(d.rdiv).find('li').each(function(i,obj){         result.push($(this).attr('json'));     });                               return result;             },                  initdata:function(data){                 $(d.ldiv).find('ol').empty();                 $(d.rdiv).find('ol').empty();                 var li;                 var lbl;                 for (i=0;i<data.length;i++){                     var li = document.createelement('li');                     lbl = document.createelement('label');                     if(true)                     {                         $(lbl).text(data[i][p.idcolumn] + ' '+ data[i][p.captioncolumn]); //.attr("for",'li' + data[i][p.idcolumn])                     }else{                         $(lbl).text(data[i][p.captioncolumn]);                     }                     $(li).attr('json',d.json2str(data[i])).append(lbl);                                        $(d.ldiv).find('ol').append(li);                                }                 $(d.ldiv).find('ol li').each(function(i,obj)                 {                     $(obj).bind('dblclick',function()                     {                         if($(this).parent().hasclass('twowaylist-lol'))                         {                             d.l2r(this);                         }else{                             d.r2l(this);                         }                                            }).bind('click',function()                     {                         $(this).toggleclass("ui-selected");                                            });                                 });                         },             ajaxsubmit:function(para){                 if(p.url){                                        if(p.onbeforesubmit) para= p.onbeforesubmit();      $.ajax({         type: p.method,         timeout:20 * 1000,         url: p.url,         async:false,         data: para,         datatype: p.datatype,         success: function(data){              if(data.state == 1)              {                  $(d.caption).html('');                  d.initdata(data.fields);                  if(p.onsuccess) //执行成功后                  {                      p.onsuccess();                  }              }else{                  $(d.caption).html('数据加载失败<br/>' + data.msg );              }         },         error: function(data) { try { alert(data.tostring()) } catch (e) {} },         beforesend:function(data) { },         complete :function(){ }       });                                    }                         }         };                 if(p.width == 'auto')         {             p.width = 600;         }         var mdivwidth = 80;         //init div         d.adiv = document.createelement('div');                 d.ldiv = document.createelement('div');         $(d.ldiv).addclass('twowaylist-oldiv').width((p.width - mdivwidth) /2 ).height(p.height);                 d.rdiv = document.createelement('div');         $(d.rdiv).addclass('twowaylist-oldiv').width((p.width - mdivwidth) /2 ).height(p.height);                 d.mdiv = document.createelement('div');         $(d.mdiv).width(mdivwidth);                 d.mtable = document.createelement('table');         d.mtable.cellpadding = 0;         d.mtable.cellspacing = 0;                 //add button         var br="<br />";         //l2r   var btndiv = document.createelement('input');   $(btndiv).addclass('twowaylist-button').attr({'type':'button','value':'>'});                 $(btndiv).click(             function()             {                 $('.ui-selected', d.ldiv).each(function()                 {                     d.l2r(this);                 });             }         );         $(d.mdiv).append(btndiv);         $(d.mdiv).append(br);         //r2l         btndiv = document.createelement('input');         $(btndiv).addclass('twowaylist-button').attr({'type':'button','value':'<'});         $(btndiv).click(             function()             {                 $('.ui-selected', d.rdiv).each(function()                 {                     d.r2l(this);                 });             }         );         $(d.mdiv).append(btndiv);         $(d.mdiv).append(br);         //l2r all         btndiv = document.createelement('input');   $(btndiv).attr({'type':'button','value':'>>'}).addclass('twowaylist-button');         $(btndiv).click(             function()             {                 d.l2rall();             }         );         $(d.mdiv).append(btndiv);           $(d.mdiv).append(br);          //r2l all         btndiv = document.createelement('input');   $(btndiv).attr({'type':'button','value':'<<'}).addclass('twowaylist-button');         $(btndiv).click(             function()             {                 d.r2lall();             }         );         $(d.mdiv).append(btndiv);                                             $('span',d.mdiv)   .css教程({paddingleft:20})   ;                                    //set div         d.caption = document.createelement("caption");         $(d.mtable).append(d.caption);         //set table th         var thead = document.createelement("thead");         var tr = document.createelement("tr");         var th=document.createelement("th");         $(th).html('待选项');         $(tr).append(th);         th=document.createelement("th");         $(tr).append(th);         th=document.createelement("th");         $(th).html('已选项');         $(tr).append(th);                        $(thead).append(tr);         $(d.mtable).append(thead);         var tbody = document.createelement("tbody");                 tr = document.createelement("tr");                 var td = document.createelement("td");         var lol= document.createelement("ol");         $(lol).addclass('twowaylist-lol');         $(d.ldiv).append(lol);                 $(td).append(d.ldiv);         $(tr).append(td);         td = document.createelement("td");         $(td).append(d.mdiv);         $(tr).append(td);         td = document.createelement("td");                 var rol= document.createelement("ol");         $(rol).addclass("twowaylist-rol");         $(d.rdiv).append(rol);         $(td).append(d.rdiv);         $(tr).append(td);                 $(tbody).append(tr);         $(d.mtable).append(tbody);         $(t).append(d.mtable);                 d.vinput = document.createelement("input");         $(d.vinput).attr({'type':'hidden','id':'twowaylistvalue'});         $(t).append(d.vinput);         //leftlist selectable      //$(lol).selectable();                //rightlist sortable      $(rol).sortable();                     t.list = d;         //load items         if(p.items)         {             d.initdata(p.items);         }         return t;     };     var docloaded = false; $(document).ready(function () {docloaded = true} );     //初始化 $.fn.twowaylist = function(p) {   return this.each( function() {    var t = this;     if (!docloaded)     {      $(this).hide();      $(document).ready      (       function ()       {        $.addlist(t,p);       }      );     } else {      $.addlist(this,p);     }    }); }; //end twowaylist    //初始化列表,参数为json array $.fn.twowaylistinit = function(data) {      return this.each(function(){          if(this.list)          {              this.list.initdata(data);          }      }); }; //end twowaylistinit //ajax提交,获取字段列表,参数如{id:'2'} $.fn.twowaylistsubmit = function(pa) {      return this.each(function(){          if(this.list)          {              this.list.ajaxsubmit(pa);          }      }); }; //end twowaylistsubmit })(jquery);

利用JQuery 来操作 ListBox和ListBox内移动的更多相关文章

  1. 利用jquery判断点是否在椭圆内

    源码例子下载 : <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...

  2. 利用jquery的$.Deferred方法在一个函数内获取另一个函数的返回值

    使用场景:方法B需要方法A执行完成之后再执行,比如方法B中有用到方法A的变量:(需要引入jQuery1.5以后的版本) function A(){ var deffered = new $.Defer ...

  3. 利用jquery操作Radio方法小结

    用Radio来实现用户的选择效果,在项目中积累了一些利用JQUERY来操作Radio的方法,这里与大家分享下 在开发中经常会用到Radio来实现用户的选择效果,我在项目中积累了一些利用JQUERY来操 ...

  4. 利用jQuery对li标签操作

    <ul class="con" id="products"> <li i=" class=""> < ...

  5. 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变

    查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ...

  6. 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作

    $("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...

  7. 利用jquery的imgAreaSelect插件实现图片裁剪示例

    http://www.cnblogs.com/mizzle/archive/2011/10/13/2209891.html 将用户上传的图片进行裁剪再保存是现在web2.0应用中常常处理的工作,现在借 ...

  8. jquery :操作iframe

    原文 jquery :操作iframe 1. 内容里有两个ifame <iframe id="leftiframe"...</iframe> <iframe ...

  9. 160620、利用 jQuery UI 和 Ajax 创建可定制的 Web 界面

    如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化.个性化的主页或仪表板页面(例如 iGoogle.MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚 ...

随机推荐

  1. 相关性系数及其python实现

    参考文献: 1.python 皮尔森相关系数 https://www.cnblogs.com/lxnz/p/7098954.html 2.统计学之三大相关性系数(pearson.spearman.ke ...

  2. DP思路

    在这里记录一些在大神们的博客,以及自己做过的一些DP的神奇思路吧 1.2015/04 NEUQ 月赛  转自:http://zyfzyf.is-programmer.com/posts/89993.h ...

  3. C++虚函数之接口 最简单的功能

    虚函数 ,接口,到底有什么用呢? 以前我都是在C++ 里面写C,只用到 简单的C++面对对象知识 #include<stdio.h> class IServerLogic{ virtual ...

  4. Understanding Linux CPU stats

    Your Linux server is running slow, so you follow standard procedure and run top. You see the CPU met ...

  5. 理解 Linux 的处理器负载均值

    原文链接: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages 你可能对于 Linux 的负载均值(loa ...

  6. AOP AspectJ 字节码 语法 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. [Math]理解卡尔曼滤波器 (Understanding Kalman Filter) zz

    1. 卡尔曼滤波器介绍 卡尔曼滤波器的介绍, 见 Wiki 这篇文章主要是翻译了 Understanding the Basis of the Kalman Filter Via a Simple a ...

  8. form表单的reset

    $(':input','#myform') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .rem ...

  9. C#.NET常见问题(FAQ)-如何让文本框textbox内容限制为数字

    //限制文本框的输入 private void txtQuestionScore_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyCha ...

  10. 【DB】部分MySQL操作记录

    工作中涉及到部分统计工作,恰好把之前的有些SQL再熟悉回顾一下. 一.涉及到时间统计部分: 求时间差: ), (SELECT CURDATE())) AS '试用时间'; ), (SELECT CUR ...