Select的option 中填充其他属性值(十三)

简介: Select的option 中填充其他属性值(十三)

一. select 框中添加多余的属性


在前端select 框操作时,常常会遇到这样的问题, 如下图。


20190514193140356.png


员工姓名是一个select的集合选项, 选择一个员工姓名,然后去将它的任命日期和部门名称,岗位名称给查询出来。 其中,员工姓名与部门名称,岗位名称是一一对应的关系。 传统的做法,或者说是老蝴蝶飞以前的做法是, 先填充员工的集合到员工姓名对应的select 框中, 编号是value, 名称是text. 然后写一个员工姓名的改变change 事件,在改变事件中, 取出选中的员工编号,再次去查询服务,根据员工编号去将 部门名称和岗位名称查询出来。 这是两次查询。 可以简单优化一下,进行一次查询,就是在填充员工姓名时,将员工编号,员工名称,部门名称,岗位名称,均查询出来。 然后将其一一对应写到select 中的option 里面。 这样就可以根据 选中的option 的值 将其余的属性查询出来。


二. 主要操作代码


需要引入插件, bootstrap-select 插件,官网是:https://developer.snapappointments.com/bootstrap-select/ ,引入css 和js样式。


至于 bootstrap-select 插件的使用,以后会讲一下的。


<link rel="StyleSheet"
  href="../../plugins/bootstrap-select/bootstrap-select.min.css"
  type="text/css" />


  <script type="text/javascript"
    src="../../plugins/bootstrap-select/bootstrap-select.min.js"></script>


二.一 根据查询值绑定元素


normalUserSelect($("#user_name"));


二.二 将查询的结果绑定到元素上


function normalUserSelect(target){
  var normaldata=call("../../_rs_selectNormalUserJobAction.do", norinfo);
  //查询员工的集合,里面有员工编号和姓名,部门编号,部门名称,职位编号和职位名称等值。
  var ndata=normaldata.appdata.normal_userdeptjob_list?normaldata.appdata.normal_userdeptjob_list:[];
  //alert(ndata.length);
  // 将select选择框清空
  target.empty(); 
  $.each(ndata,function(idx,item){
    // 取出每一个值
    var dcode=item.dept_code?item.dept_code:"";
    var dname=item.dept_name?item.dept_name:"";
    var djobcode=item.job_code?item.job_code:"";
    var djobname=item.job_name?item.job_name:"";
    // 以 data-* 的形式,将其他的属性填充到里面去。  如data-code 为部门编号 ,data-name 为部门名称, data-djobcode 为职位编号,data-djobname 为职位名称。
    $("<option value='"+item.user_code+"' data-code='"+dcode+"' data-name='"+dname+"' data-djobcode='"+djobcode+"' data-djobname='"+djobname+"'>"+item.user_name+"</option>").appendTo(target);   
  })
  $("<option selected='true' value=''>请选择</option>").prependTo(target);
  //进行刷新 target.selectpicker('refresh');
  target.selectpicker('refresh');
}


二.三 改变事件时,取出元素 进行放置


$("#user_name").on('change',function(){
  //选择的员工为空,则其他值也为空
  if(this.value==""){
    $("#odept_name").val("");
    $("#ojob_name").val("");
    return;
  }
  // 取出选中的那个元素。
  var dom=$(this).find("option:selected");
  // 以元素.data(属性) 的方式取出值, 属性为data-* 中的* 值。
  var dcode=dom.data("code");
  //console.log("取出部门编码号:"+dcode);
  var dname=dom.data("name");
  var djobname=dom.data("djobname");
  //取出部门的编号,进行设置值。
  $("#odept_name").val(dname);
  $("#ojob_name").val(djobname);
  deptCode(dcode);
})


这样就可以取出相应的值了, 一次查询就够了。


谢谢!!!

相关文章
|
8月前
|
JavaScript
element-UI el-table动态显示隐藏列造成固定一侧的列(fixed=“left/right“)错误显示
问题原因:多个tabs共用一个实体,动态显示隐藏列 出现了固定在右侧的列(fixed="right")错位 【解决方案】 表格的重新布局,只要table数据发生变化的时候就重新渲染表格 ```js this.$nextTick(() => { this.$refs.formname.doLayout() }) ``` 参考element官方文档 ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-e40
139 0
element-UI el-table动态显示隐藏列造成固定一侧的列(fixed=“left/right“)错误显示
|
1月前
|
缓存 JavaScript 前端开发
通过id给input框和div赋值,修改属性值。
通过id给input框和div赋值,修改属性值。
62 0
通过id给input框和div赋值,修改属性值。
|
1月前
|
JavaScript 前端开发 开发者
div 元素的 tab-index 属性被设置为 -1,意味着什么
div 元素的 tab-index 属性被设置为 -1,意味着什么
|
9月前
|
JavaScript
el-select下拉多选框 el-select 设置默认值不可删除功能
Element-UI是一款广泛使用的Vue.js组件库,其中El-Select下拉多选框组件在实际项目开发中经常被使用。然而,在Element 3.0版本中,El-Select下拉多选框默认值可被删除,这可能会导致一些意外情况。本文将介绍如何解决这个问题,实现El-Select下拉多选框设置默认值不可删除的功能。
328 0
el-select下拉多选框 el-select 设置默认值不可删除功能
给select赋值-获取选中的值
给select赋值-获取选中的值
关于el-table单元格合并的解决方案
关于el-table单元格合并的解决方案
488 0
关于el-table单元格合并的解决方案
|
数据库
【TP5】select下拉框的默认显示父级
【TP5】select下拉框的默认显示父级
254 0
【TP5】select下拉框的默认显示父级
MPAndroidChart 教程:突出显示值 Highlighting Values
本节主题是重点介绍通过tap-gesture和基于发行版v3.0.0以编程方式突出显示图表中条目。 启用/禁用突出显示 setHighlightPerDragEnabled(boolean enabled):在Chart 上将此设置为true,以便在完全缩小时在图表表面上进行每次拖动时突出显示,默认值:true setHighlightPerTapEnabled(boolean enabled):在Chart 上将此设置为false,以防止通过点击手势突出显示值。
2260 0
|
Java Android开发
el表达式设置option标签selected
el表达式设置option标签selected
255 0
el表达式设置option标签selected