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 相关文章推荐
window.location不跳转的问题解决方法
Apr 17 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
Jun 06 Javascript
JS组件Bootstrap实现弹出框效果代码
Apr 26 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
Sep 20 Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 Javascript
AngularJS表格样式简单设置方法示例
Mar 03 Javascript
js常用的继承--组合式继承
Mar 06 Javascript
js实现不提示直接关闭网页窗口
Mar 30 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
javascript 内存模型实例详解
Apr 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
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php绘制一个矩形的方法
2015/01/24 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
php图像验证码生成代码
2017/06/08 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
ArrayList类(增强版)
2007/04/04 Javascript
常用的javascript function代码
2008/05/23 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python类属性的延迟计算
2016/10/22 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
多版本Python共存的配置方法
2017/05/22 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
详细的大学生创业计划书模板
2014/01/27 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
大学体育课感想
2015/08/10 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js