轻松使用jQuery双向select控件Bootstrap Dual Listbox


Posted in Javascript onDecember 13, 2015

本文主要为大家介绍了双向select控件Bootstrap Dual Listbox的使用方法,Bootstrap Dual列表是一个为响应Twitter优化的列表框插件,它可以用在所有的现代浏览器和触摸设备上,分享给大家,具体如下:

效果图:

轻松使用jQuery双向select控件Bootstrap Dual Listbox

一、使用

1、引用css和js文件

<link href="scripts/bootstrap-3.3.5-dist/css/bootstrap.min.css" rel="stylesheet" />
 <!--<link href="//cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css" rel="stylesheet">-->
 <link href="scripts/duallistbox/bootstrap-duallistbox.min.css" rel="stylesheet" />
 <script src="scripts/jquery/jquery-2.1.4.min.js"></script>
 <script src="scripts/bootstrap-3.3.5-dist/js/bootstrap.min.js"></script>
 <!--<script src="//cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.min.js"></script>-->
 <script src="scripts/duallistbox/jquery.bootstrap-duallistbox.min.js"></script>

2、初始化class属性为demo1的select元素

<script type="text/javascript">
  $(function () {
   var demo2 = $('.demo1').bootstrapDualListbox({
    nonSelectedListLabel: 'Non-selected',
    selectedListLabel: 'Selected',
    preserveSelectionOnMove: 'moved',
    moveOnSelect: false,
    nonSelectedFilter: 'ion ([7-9]|[1][0-2])'
   });

   $("#showValue").click(function () {
    alert($('[name="duallistbox_demo1"]').val());
   });
  });
 </script>

3、html代码

<div class="col-md-7">
  <select multiple="multiple" size="10" name="duallistbox_demo1" class="demo1">
   <option value="1">Option 1</option>
   <option value="2">Option 2</option>
   <option value="3" selected="selected">Option 3</option>
   <option value="4">Option 4</option>
   <option value="5">Option 5</option>
   <option value="6" selected="selected">Option 6</option>
   <option value="7">Option 7</option>
   <option value="8">Option 8</option>
   <option value="9">Option 9</option>
   <option value="10">Option 10</option>
  </select>
  <br />
  <input id="showValue" type="button" value="show selected data" />
 </div>

这样就完成了插件的调用

二、扩展

一个通用的、初始化数据的js函数:

/*初始化duallistbox*/
  //queryParam1:参数
  //selectClass:select元素class属性
  //selectedDataStr:选中数据,多个以,隔开
  function initListBox(queryParam1,selectClass, selectedDataStr) {
   var paramData = {
    'testParam1': queryParam1
   }
   $.ajax({
    url: 'DataHandler.ashx',
    type: 'get',
    data: paramData,
    async: true,
    success: function (returnData) {
     var objs = $.parseJSON(returnData);
     $(objs).each(function () {
      var o = document.createElement("option");
      o.value = this['id'];
      o.text = this['name'];
      if ("undefined" != typeof (selectedDataStr) && selectedDataStr != "") {
       var selectedDataArray = selectedDataStr.split(',');
       $.each(selectedDataArray, function (i, val) {
        if (o.value == val) {
         o.selected = 'selected';
         return false;
        }
       });
      }
      $("." + selectClass + "")[0].options.add(o);
     });
     //渲染dualListbox
     $('.' + selectClass + '').bootstrapDualListbox({
      nonSelectedListLabel: 'Non-selected',
      selectedListLabel: 'Selected',
      preserveSelectionOnMove: 'moved',
      moveOnSelect: false//,
      //nonSelectedFilter: 'ion ([7-9]|[1][0-2])'
     });
    },
    error: function (e) {
     alert(e.msg);
    }
   });
  }

html代码:

<div class="col-md-7">
  <select multiple="multiple" size="10" name="duallistbox_demo2" class="demo2">
  </select>
  <br />
  <input id="showValue" type="button" value="show selected data" />
 </div>

调用:

$(function () {
   //初始化
   initListBox('hangwei.cnblogs.com', 'demo2');

   $("#showValue").click(function () {
    alert($('[name="duallistbox_demo2"]').val());
   });
  });

DataHandler.ashx代码:

<%@ WebHandler Language="C#" Class="DataHandler" %>

using System;
using System.Web;
using System.Collections.Generic;
using Newtonsoft.Json;

public class DataHandler : IHttpHandler {
 
 public void ProcessRequest (HttpContext context) {
  var china = new { id = "China", name = "中国" };
  var usa = new { id = "USA", name = "美国" };
  var rsa = new { id = "Russia", name = "俄罗斯" };
  var en = new { id = "English", name = "英国" };
  var fra = new { id = "France", name = "法国" };
  List<object> list = new List<object>();
  list.Add(china);
  list.Add(usa);
  list.Add(rsa);
  list.Add(en);
  list.Add(fra);
  string returnJson = JsonConvert.SerializeObject(list);
  context.Response.ContentType = "text/plain";
  context.Response.Write(returnJson);  
 }
 
 public bool IsReusable {
  get {
   return false;
  }
 }

}

效果:

轻松使用jQuery双向select控件Bootstrap Dual Listbox

本文的demo使用的开发环境:VS2013、.NET Framework4.5.

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

以上就是双向select控件Bootstrap Dual Listbox的使用方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JQuery插件Style定制化方法的分析与比较
May 03 Javascript
javascript中有趣的反柯里化深入分析
Dec 05 Javascript
jQuery获取样式中颜色值的方法
Jan 29 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 Javascript
利用jquery实现瀑布流3种案例
Sep 18 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
Web纯前端“旭日图”实现元素周期表
Mar 10 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
Nov 30 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
Sep 11 Javascript
微信小程序手动添加收货地址省市区联动
May 18 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
Dec 13 #Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 #Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
Dec 13 #Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 #Javascript
JavaScript文档碎片操作实例分析
Dec 12 #Javascript
javascript性能优化之事件委托实例详解
Dec 12 #Javascript
jsonp跨域请求数据实现手机号码查询实例分析
Dec 12 #Javascript
You might like
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
PHP分页详细讲解(有实例)
2013/10/30 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python实现简单登陆流程的方法
2018/04/22 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
先进事迹报告会感言
2014/01/24 职场文书
预备党员综合考察材料
2014/05/31 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
爱国主义主题班会
2015/08/14 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
乔迁新居祝福语
2019/11/04 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL