轻松使用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 相关文章推荐
setInterval与clearInterval的使用示例代码
Jan 28 Javascript
jquery解析xml字符串示例分享
Mar 25 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
Mar 27 Javascript
js css 实现遮罩层覆盖其他页面元素附图
Sep 22 Javascript
高性能JavaScript模板引擎实现原理详解
Feb 05 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
js实现移动端轮播图效果
Dec 09 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 Javascript
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
Oct 31 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
Python做简单的字符串匹配详解
2017/03/21 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python判断数字是否是超级素数幂
2018/09/27 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
一道Delphi上机题
2012/06/04 面试题
给分销商的致歉信
2014/01/14 职场文书
cf战队收人广告词
2014/03/14 职场文书
学员自我鉴定
2014/03/19 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python