码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • layui 使用xmSelect组件多选下拉


    layui 使用xmSelect组件多选下拉

    • layui 使用xmSelect组件多选下拉
      • 对于多个下拉框进行取值

    layui 使用xmSelect组件多选下拉

    在开发过程中,有使用layui框架和xmSelect组件做一个多选的下拉框功能,但是在表单中可能会有多个的多选下拉框组件,所以我们希望把它封装成一个方法,通过传递不同的参数,实现多个下拉框组件,
    这里后台要求提交表单的数据格式是formData,所以在这里面又会有几个问题了。
    1.表单提交的数据中,xmSelect下拉框组件在提交表单的数据中他的字段名是select,使用多个下拉框那么在表单中就会有多个select,传递给后台的字段名对不上。
    2.在传递多选下拉框值的时候,后台可能会对与这个字段值会要求是数组,然而formData中传递数组,会把参数解析成字符串给后台,所以这个不符合条件
    3.传递给后台的下拉框的字段值是数组时,回显的时候前端把它转为数组回显时,再去修改下拉框时,会遇到去除选中项,要点击两次的情况(不知道其他人有没有遇到过),猜测是因为回显数据是返回的是一个字符串,前端再把字符串转为数组,渲染到页面的时候,可能是数据渲染出了问题。如果传递的是一个数组就不会有这个问题。

    对于多个下拉框进行取值

    这样根据ID取出的数据是一个字符串

    var vallist = xmSelect.get('#demo1', true).getValue('valueStr');  //  获取选中的Id并用 "," 拼接。
    var namelist = xmSelect.get('#demo1', true).getValue('nameStr');  //  获取选中的name并用 "," 拼接。
    
    • 1
    • 2

    转换成一个数组

    var vallist =  xmSelect.get('#demo1',true).getValue('valueStr').split(',')
    var namelist =  xmSelect.get('#demo1',true).getValue('valueStr').split(',')
    
    • 1
    • 2

    在formData添加数组时,会有一个的问题,就是post请求会把数组拼接成一个字符串发送给服务器。

    这种时候有两种解决方案
    一、后台拿到字符串后,再通过截取字符串来生成数组

    二、对数据进行字符串化,即JSON.stringify()

    1.创建formData传递参数,这里把获取到的多选的值塞进formData中并把xmelect自带的select删除
    let formData = new FormData();
     formData.append('vallist ',JSON.stringify(vallist))
     formData.delete('select')
    
    • 1
    • 2
    • 3
    • 4
    1.创建formData,直接以提交整个表单的形式,不用一个个字段塞值,这里把获取到的多选的值塞进formData中
    并把xmelect自带的select删除
    var formData = new FormData($("#contract_form")[0]);
     formData.append('vallist ',JSON.stringify(vallist))
     formData.delete('select')
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    释放锁流程源码剖析
    人工智能与深度神经网络,人工智能人工神经网络
    MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI
    Arduino红外循迹小车代码笔记和常见问题解决
    java 基于微信小程序的考研公务员资料销售商城购物平台 uniapp 小程序
    亲测有效,推荐4款好用的录屏软件
    three.js 航拍全景图(+陀螺仪)
    自建田间作物场景杂草检测数据,基于YOLOv5[n/s/m/l/x]全系列参数模型开发构建杂草检测识别分析系统
    如何在React中监听键盘事件
    Android-Handler源码解析-Message
  • 原文地址:https://blog.csdn.net/qq_38181746/article/details/126172247
  • 最新文章
  • 【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
    SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
    不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
    Halo插件:支持GitHub的图床附件策略
    电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
    华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
    软件更好写之后口碑会更重要
    大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
    Java标签跳转:一个鲜为人知但却很实用的小技巧
    多智能体系统论文速读
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号