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 相关文章推荐
js关闭父窗口时关闭子窗口
Apr 01 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
Sep 26 Javascript
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
微信小程序之GET请求的实例详解
Sep 29 Javascript
vue项目中将element-ui table表格写成组件的实现代码
Jun 12 Javascript
JavaScript学习教程之cookie与webstorage
Jun 23 Javascript
如何在wxml中直接写js代码(wxs)
Nov 14 Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 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
yii实现创建验证码实例解析
2014/07/31 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python学习笔记:字典的使用示例详解
2014/06/13 Python
python避免死锁方法实例分析
2015/06/04 Python
python数据结构之列表和元组的详解
2017/09/23 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
python 实现倒排索引的方法
2018/12/25 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
介绍一下linux的文件权限
2014/07/20 面试题
幼儿园教研活动方案
2014/01/19 职场文书
师范生自我鉴定
2014/03/20 职场文书
安全生产奖惩制度
2015/08/06 职场文书
分析Python list操作为什么会错误
2021/11/17 Python