首页 > 其他分享 >layui下拉框xm-select自定义搜索使用方法

layui下拉框xm-select自定义搜索使用方法

时间:2024-10-29 17:30:48浏览次数:6  
标签:val 自定义 xm let data 下拉框 select

xm-select介绍

始于Layui, 下拉选择框的多选解决方案

git地址:https://gitee.com/maplemei/xm-select
文档说明:https://codecp.tech/static/xm-select/#/component/options

什么情况下使用

  • 下拉框的数据量比较大
  • 需要支持下拉框的搜索

如何使用自定义搜索

  • 引用xm-select,使用最新版本,老版本update方法无法使用
    <script type="text/javascript" th:src="@{/res/js/xm-select-1.2.2.js}"></script>
  • 定义下拉框的位置
    <div id="demo1"></div>
  • 调用reader进行渲染
let list = [];
let pageSize = 10;
if(demoSelect == null){
  orgNameSelect = xmSelect.render({
    el: '#demoSelect',
    data: [], // 数据
    paging: true, // 是否分页
    pageSize: pageSize, // 每页数量
    max:10, // 最多可以选的个数
    // 触发监听
    on: function(data){
      // 监听到的数据类型包含 name,value
      let arr = data.arr;
      let checkIdArr = [];
      let checkNameArr = [];
      if(arr.length > 0){
        arr.forEach((item) => {
          checkIdArr.push(item.value);
          checkNameArr.push(item.name);
        });
        $("#id").val(checkIdArr.join(","));
        $("#name").val(checkNameArr.join(","));
      }else{
        $("#id").val("");
        $("#name").val("");
      }
    },
    // 样式
    theme: {
      color: '#4991E1',
    },
    // radio: true,// 单选
    // clickClose: true,// 选中后关闭
    pageRemote: true,// 是否开启远程分页
    pageEmptyShow: false,// 显示空页
    remoteSearch: true,// 远程搜索
    // 远程搜索方法
    // val: 当前搜索值, cb(arr, totalPage): 回调函数, 需要回调一个数组, 结构同data, 远程分页需要第二个参数: 总页码
    // show: 下拉框显示状态, pageIndex: 分页下当前页码
    remoteMethod: function(val, cb, show, pageIndex){
      // 调用后台接口
      $.ajax({
        url: "/getList?param=111,
        type: "GET",
        dataType: "JSON",
        success: function(resp) {
          if (resp.code === SUCCESS_CODE) {
            if(resp.data.total > 0){
              let data = resp.data.list;
              list = [];
              for(let i=0; i<data.length; i++){
                list.push({"name":data[i].orgName,"value":data[i].orgId});
              }
              // 页码
              let pages = Math.ceil(resp.data.total / pageSize);
                cb(list,pages);
              }else{
                // 初始化为空
                cb([],0);
              }
            }
          }
        });
      },
    // 开启搜索
  filterable: true,
  });
}else{
  console.log("更新");
  // reset 会把已选中的数据清除 update方法只是更新,他们都可以重新触发一次remoteMethod
  orgNameSelect.reset();
}

显示效果

image

标签:val,自定义,xm,let,data,下拉框,select
From: https://www.cnblogs.com/hyiam/p/18514022

相关文章

  • element-plus自定义表格根据内容合并行
    用el-table组件时,对于自定义表头,多级表头的使用在官网都有详细介绍。 在这次项目中用到了,自定义合并行,根据行内容相同的合并。前提是两个行要挨着。先看效果: 实现原理:原理很简单,重点在于组件span-method这个属性, 这个属性方法会一个单元格一个单元格去渲染,参......
  • linux 自定义命令
    linux下有多种自定义命令的方式:1、alias方式:也就是别名2、环境变量的方式:将写好的脚本放在对应的目录中,然后将目录放在$HOME/.profile中。3、函数的方式:在$HOME下建立.bash_func文件夹,可使用命令mkdir-p$HOME/.bash_func实现。在$HOME/.bashrc下添加加载函数的代码#在$......
  • 自动化测试工具Ranorex Studio(十五)-自定义代码ACTION
    在Recorder提供的功能不能够满足的情况下,可以使用自定义代码。这里有一些例子,可以方便演示自定义代码Action。•   自定义验证•   访问测试用例相关的数据和参数•   扩展报告在项目视图窗口中,仔细看一个录制模块文件,你会看到有两个相关的代码文件。 图:录......
  • 面试官:自定义Loader和Plugin实现过吗?
    Loader案例:多语言翻译Loader这个自定义Loader旨在支持多语言翻译功能。在项目开发中,文本字符串通常会放在一个JSON文件中,如 en.json 和 zh.json,分别用于存储不同语言的文本。自定义Loader可以在编译过程中将代码中的特定标记(如 __t('KEY'))替换为对应语言的字符串,......
  • ORACLE自定义函数
    CREATE[ORREPLACE]FUNCTION函数名称(arg1[{IN|OUT|INOUT}]TYPE1[DEFAULTVALUE1], [arg2[{IN|OUT|INOUT}]TYPE2[DEFAULTVALUE1]],……[argn[{IN|OUT|INOUT}]TYPE[DEFAULTVALUE]])[AUTHIDDEFINER|CURRENT_USER]RETURNreturn_typeIS|A......
  • ArkTS 中的 XML 解析与生成:应用开发实战
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。引言XML是一种广泛使用的标记语言,用......
  • 高性能 ArkUI 应用开发:复杂 UI 场景中的内存管理与 XML 优化
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在开发高性能ArkUI应用时,尤其是涉及......
  • dedeCMS 自定义表单地区联动类型不可用
    问题:自定义表单地区联动类型不可用。解决办法:打开 /dede/templets/diy_field_edit.htm 文件,找到:<optionvalue="stepselect">联动类型</option-->修改为:<!--><optionvalue="stepselect">联动类型</option>打开 /dede/templets/diy_field_......
  • vue2-自定义全局toast提示插件
    编写toast.vue在components文件夹下新增toast文件夹,并在toast文件夹中新增index.vue文件`<template><divid="toast"><spanclass="toast"@mouseleave="start"@mouseenter="stop":style="{top:styleTop,colo......
  • 【揭秘】如何用ConstraintValidator自定义校验注解,让你的代码更简洁高效!
    在Java中,自定义校验注解(CustomValidationAnnotation)通常用于BeanValidation框架(如HibernateValidator),以便对特定字段或方法参数进行验证。以下是如何创建和使用自定义校验注解的详细步骤和代码示例:1.定义自定义校验注解首先,我们需要定义一个自定义校验注解。这个注解需......