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 相关文章推荐
nicejforms——美化表单不用愁
Feb 20 Javascript
javascript 设置某DIV区域内的checkbox复选框
Nov 30 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
jquery中push()的用法(数组添加元素)
Nov 25 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 Javascript
详解微信小程序Radio选中样式切换
Jul 06 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
微信小程序用户信息encryptedData详解
Aug 24 Javascript
jQuery事件委托代码实践详解
Jun 21 jQuery
用 js 写一个 js 解释器过程详解
Aug 02 Javascript
vue 微信扫码登录(自定义样式)
Jan 06 Javascript
微信小程序中wxs文件的一些妙用分享
Feb 18 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
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
python代码如何注释
2020/06/01 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
Python try except finally资源回收的实现
2021/01/25 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
劳动之星获奖感言
2014/02/01 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
党校个人总结
2015/03/04 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
python编程实现清理微信重复缓存文件
2021/11/01 Python
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技