easyUI combobox实现联动效果


Posted in Javascript onJanuary 17, 2017

我在做项目时,经常用到easyUI框架,今天总结一下easyUI中的combobox吧
创建easyui-combobox的方法,在easyUI的官网都有:

1、从带有预定义结构的 元素创建组合框(combobox)

<select id="cc" class="easyui-combobox" name="dept" style="width:200px;">
  <option value="aa">aitem1</option>
  <option>bitem2</option>
  <option>bitem3</option>
  <option>ditem4</option>
  <option>eitem5</option>
</select>

2、从标记创建组合框(combobox)

<input id="cc" class="easyui-combobox" name="dept"
data-options="valueField:'id',textField:'text',url:'get_data.php'">

3、使用 javascript 创建组合框(combobox)

<input id="cc" name="dept" value="aa">

$('#cc').combobox({
  url:'combobox_data.json',
  valueField:'id',
  textField:'text'
});

json 数据格式的示例:

[{
  "id":1,
  "text":"text1"
},{
  "id":2,
  "text":"text2"
},{
  "id":3,
  "text":"text3",
  "selected":true
},{
  "id":4,
  "text":"text4"
},{
  "id":5,
  "text":"text5"
}]

它的属性和方法就不在赘述了,可以上官网查看。
下面来说一下关于两个combobox发联动

//初始化下拉列表
function InitCombobox() {
  $("#combobox_one").combobox({
    onLoadSuccess: function(){
      var types = $("#combobox_one").combobox('getData');
      if (types.length > 0){ 
        $("#combobox_one").combobox('select', types[0].Value); //全部
      }
    }
  });
  $("#combobox_two").combobox({ 
    url:'...';
    onLoadSuccess: function(){ 
      var types = $("#combobox_one").combobox('getData');
      if (types.length > 0){ 
        $("#combobox_two").combobox('select', types[0].Value); //全部
      }
    },
    onSelect: function(record){ 
      var url = '...' + record.Value;
      $("#combobox_one").combobox('reload', url);
    }
  });
$(function() {
  var typeData = [{
    text: "来源",
    value: "prodName"
  }, {
    text: "排放",
    value: "ars"
  }];
  var options01 = [{
    text: "生活污水",
    value: "eq"
  }, {
    text: "工业用水",
    value: "ne"
  }];
  var options02 = [{
    text: "工业用水",
    value: "ne"
  }, {
    text: "生活垃圾",
    value: "ge"
  }];
  //初始化查询项目的下拉列表
  $("#type").combobox({
    valueField: 'value',//值字段
    textField: 'text',//显示的字段
    data: typeData,
    panelHeight: 170,
    onSelect: function() {
      var myOptValue = $("#type").combobox("getValue");
      //1.清空原来的classify这个combobox中的选项
      $("#classify").combobox("clear");
      //2.动态添加"操作类型"的下拉列表框的option              
      if (myOptValue != null && (myOptValue == 'prodName' || myOptValue == 'prodStatus')) {
        console.info("myOptValue = " + myOptValue);
        $("#classify").combobox({
          panelHeight: 50,
          data: options01
        });
      } else {
        $("#classify").combobox({
          panelHeight: 140,
          data: options02
        });
      }
      //3.清空文本输入框——用户输入的条件              
      //$("#userInputCondition").val("");
    }
  });
  //初始化classify的下拉列表
  $("#classify").combobox({
    valueField: 'value',
    textField: 'text',
    data: options02,
    panelHeight: 140,
  });
});

下面是一个关于省市区的联动:

var h = $(window).height() * 0.65;
// 省级 
$('#province').combobox({
  valueField: 'name', //值字段
  textField: 'name', //显示的字段
  url: '/TidewaySHPServer/area/findAllProvince',//url为java后台查询省级列表的方法地址
  panelHeight: h,
  editable: true,
  //模糊查询
  filter: function(q, row) {
    var opts = $(this).combobox('options');
    return row[opts.textField].indexOf(q) == 0; //从头匹配,改成>=即可在任意地方匹配
  },
  onSelect: function(rec) {
    $('#city').combobox('setValue', "");
    $('#county').combobox('setValue', "");
    var url = '/TidewaySHPServer/area/findAllCity?parentId=' + rec.areaId;//url为java后台查询事级列表的方法地址
    $('#city').combobox('reload', url);
  }
});
//市区 
$('#city').combobox({
  valueField: 'name', //值字段
  textField: 'name', //显示的字段       
  panelHeight: 'auto',
  editable: false, //不可编辑,只能选择
  value: '',
  onSelect: function(rec) {
    $('#county').combobox('setValue', "");
    var url = '/TidewaySHPServer/area/findAllDistrictOrCounty?parentId=' + rec.areaId;//url为java后台查询区县级列表的方法地址
    $('#county').combobox('reload', url);
  }
});
//区 县
$('#county').combobox({
  valueField: 'areaId',
  textField: 'name',
  panelHeight: 'auto',
  editable: false,
});

基本上想写的都写完了,主要是多个combobox的联动效果,写的不完美大家相互学习一下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 Javascript
js传参数受特殊字符影响错误的解决方法
Oct 21 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
JavaScript中的this机制
Jan 30 Javascript
浅谈JavaScript中变量和函数声明的提升
Aug 09 Javascript
es6学习笔记之Async函数的使用示例
May 11 Javascript
jquery实现图片轮播器
May 23 jQuery
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
vue环形进度条组件实例应用
Oct 10 Javascript
Node.js系列之连接DB的方法(3)
Aug 30 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
Dec 25 Javascript
Angularjs实现搜索关键字高亮显示效果
Jan 17 #Javascript
React Router基础使用
Jan 17 #Javascript
JavaScript自定义分页样式
Jan 17 #Javascript
javascript实现页面滚屏效果
Jan 17 #Javascript
javascript中递归的两种写法
Jan 17 #Javascript
基本DOM节点操作
Jan 17 #Javascript
React快速入门教程
Jan 17 #Javascript
You might like
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
php 文件缓存函数
2011/10/08 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
聊聊Python中的pypy
2018/01/12 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python算法题 链表反转详解
2019/07/02 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
详解Python3 pickle模块用法
2019/09/16 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
英国景点门票网站:attractiontix
2019/08/27 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
《谁的本领大》教后反思
2014/04/25 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
六年级作文之家庭作文
2019/12/12 职场文书