• uni-app的下拉搜索选择组合框


    ​🌈个人主页前端青山
    🔥系列专栏:Vue
    🔖人终将被年少不可得之物困其一生

    依旧青山,本期给大家介绍uni-app中一款可以搜索下拉选择输入框的插件

    下拉搜索选择组合框

    superwei-combox 组合框

    uni-app中可下拉搜索选择框uni-combox组件

    插件地址

    superwei-combox 组合框 - DCloud 插件市场

    下载插件包导入HBuilderX

    下拉选择效果

    输入数据效果

    需要输入数据时需要启用是否允许用户创建新条目(isAllowCreate=true),开启之后可以让用户输入搜索内容或者创建新内容进行提交,返回后重新渲染可继续进行下拉选择

    两种数据模式
    JSON数据格式

    非JSON数据格式

    属性
    属性名类型默认值说明
    labelString-标签文字
    valueString-combox的值
    labelWidthStringauto标签宽度,有单位字符串,如:'100px'
    placeholderString-输入框占位符
    candidatesArray/String[]候选字段
    emptyTipsString无匹配项无匹配项时的提示语
    selectedBackgroundString#f5f7fa选中项背景颜色
    selectedColorString#409eff选中项文字颜色
    isJSONBooleanfalse候选字段是否是json数组
    keyNameString-json数组显示的字段值
    disabledColorString#ababac禁用项文字颜色
    isAllowCreateBooleantrue是否允许用户创建新条目
    事件
    事件称名说明返回值
    @inputcombox输入事件返回combox输入值
    @selectcombox选择事件返回combox选项值

    案例实现

    当我们需要获取到输入的数据和用户下拉选择的数据时,我们可以根据它的这两个@input事件和@select事件来实现,那么当你获取到后端数据并且需要提交数据传给后端时,可以定义一个变量inputMethod来区分用户输入还是下拉

    实现效果

    当我们选择输入或者下拉数据后,点击提交数据传给后端

    用户选择下拉
    非JSON数据格式

    JSON数据格式

    用户输入数据
    非JSON数据格式

    JSON数据格式

    这样一来,我们依据一个变量就可以来判断用户选择下拉数据还是自己创建内容输入新数据来进行提交,搜索功能也是相同逻辑

    实现代码

    1. <script>
    2.    export default {
    3.        data() {
    4.            return {
    5. selectValue:'',//用户输入或者下拉的数据值value
    6. inputMethod: '',  // 标志位,用于区分输入和下拉选择
    7.                inputValue: '',//非json格式
    8.                candidates: ['选项一', '选项二', '选项三', '选项四', '选项五', '选项六', '...'],
    9.                inputValue_json: '',
    10.                candidates_json: [{
    11.                    id: '1',
    12.                    name: '选项一'
    13.               }, {
    14.                    id: '2',
    15.                    name: '选项二',
    16.                    disabled: true // 单独设置disabled后即可禁用该选项
    17.               }, {
    18.                    id: '3',
    19.                    name: '选项三'
    20.               }, {
    21.                    id: '4',
    22.                    name: '选项四'
    23.               }, {
    24.                    id: '5',
    25.                    name: '选项五',
    26.                    disabled: true // 单独设置disabled后即可禁用该选项
    27.               }, {
    28.                    id: '6',
    29.                    name: '...'
    30.               }]
    31.           }
    32.       },
    33.        methods: {
    34. toSubmit(){
    35. if(this.inputMethod==='input'){
    36. console.log('用户选择了输入数据',this.selectValue)
    37. }else if(this.inputMethod==='select'){
    38. console.log('用户选择了下拉框数据',this.selectValue)
    39. }
    40. },
    41. //非json格式数据-start
    42.            input(e) {
    43. this.inputMethod = 'input'//标志位为用户输入
    44. this.selectValue = e
    45.           },
    46.            select(e) {
    47. this.inputMethod = 'select'//标志位为用户下拉
    48. this.selectValue = e
    49.           },
    50. //非json格式数据-end
    51. /*上半段为非json数据格式,下半段为json数据格式*/
    52. //json格式数据-end
    53.            input_json(e) {
    54. this.inputMethod = 'input'//标志位为用户输入
    55. this.selectValue = e
    56.           },
    57.            select_json(e) {
    58. this.inputMethod = 'select'//标志位为用户下拉
    59. this.selectValue = e.name
    60.           }
    61. //json格式数据-end
    62.       }
    63.   }
    64. script>

  • 相关阅读:
    AbstractDispatcherServletInitializer 的实现类为什么可以在初始化Web容器的时候被调用
    动态新增、修改Logback的Appender(可实现动态调整日志级别,Appender参数)
    用 matlab 求解复杂方程怎么出现这种情况?还有没有别的方法求x,python或c都行
    【JavaEE】锁策略、CAS和synchronized的优化
    小程序里.vue界面中传值的两种方式
    深入分析MySQL索引与磁盘读取原理
    Kubernetes(k8s)CNI(Calico)网络模型原理
    C++ 代码规范 cppcheck 样式修改
    zabbix监控Linux
    java计算机毕业设计社区图书馆借阅管理系统源程序+mysql+系统+lw文档+远程调试
  • 原文地址:https://blog.csdn.net/2302_76329106/article/details/134375911