yaoba111 2023-06-28 18:02 采纳率: 0%
浏览 13

element-ui设置多个input框之前通过按住拖拽换位置

img


这是用element-ui搭建的,怎么实现按住移动,让它上下移动,移动到上面对应的input的框,与移动的相互换位置

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-28 20:32
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7440004
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【element-ui笔记】element-ui中的input实现模糊搜索
    • 除此之外, 这篇博客: Element-Ui input只允许输入数字和两位小数中的 注意 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 经测试,该方法存在一个比较隐秘的bug,在中文输入法状态下,输入文字,点击空格键强制插入文字,input框为空,但此时再输入数字时,提示“不能为空,不能删除”,优化方法如“方法二”

    • 以下回答由chatgpt基于相关博客总结生成:

      问题是如何使用Element UI实现拖拽交换多个输入框的位置。以下是一个可能的解决方案:

      1. 首先,你可以使用Element UI的拖拽组件(el-draggable)来实现拖拽功能。在你的表单页面中,添加一个el-draggable组件,并绑定一个包含所有输入框的数组。
      <template>
        <div>
          <el-draggable v-model="inputList">
            <el-input v-for="input in inputList" :key="input.key"></el-input>
          </el-draggable>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            inputList: [
              { key: 1, value: '' },
              { key: 2, value: '' },
              // 其他输入框...
            ]
          }
        }
      }
      </script>
      
      1. 接下来,在el-draggable组件上添加一个事件监听器,以便在拖动完成后触发一个方法。
      <template>
        <div>
          <el-draggable v-model="inputList" @end="handleDragEnd">
            <el-input v-for="input in inputList" :key="input.key"></el-input>
          </el-draggable>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            inputList: [
              { key: 1, value: '' },
              { key: 2, value: '' },
              // 其他输入框...
            ]
          }
        },
        methods: {
          handleDragEnd() {
            // 在这里处理拖拽完成后的逻辑
          }
        }
      }
      </script>
      
      1. handleDragEnd方法中,你可以根据拖拽的起始位置和目标位置来交换输入框的位置。请注意,每个输入框对象(例如 { key: 1, value: '' })应该有一个唯一的键(例如 key),以便在交换位置时确定它们。
      <template>
        <div>
          <el-draggable v-model="inputList" @end="handleDragEnd">
            <el-input v-for="input in inputList" :key="input.key"></el-input>
          </el-draggable>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            inputList: [
              { key: 1, value: '' },
              { key: 2, value: '' },
              // 其他输入框...
            ]
          }
        },
        methods: {
          handleDragEnd() {
            // 获取拖拽后的输入框顺序
            const newInputList = this.inputList.map((input, index) => {
              input.order = index + 1;
              return input;
            });
      
            // 根据输入框的order属性排序
            newInputList.sort((a, b) => a.order - b.order);
      
            // 更新输入框列表
            this.inputList = newInputList;
          }
        }
      }
      </script>
      

      通过这个解决方案,你可以实现拖拽交换多个输入框的位置。当你拖拽一个输入框并将其放在另一个输入框的上方时,它们的位置将会交换。请确保在你的表单页面中正确引入Element UI库和相关组件。如果出现问题,请参考Element UI文档或查找相关解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月28日

悬赏问题

  • ¥15 同一个浏览器打开两个窗口怎么区分会话
  • ¥100 如何编写自己的emmc镜像
  • ¥15 starccm线性内聚力模型
  • ¥15 点云四边形凸包确定顶点
  • ¥15 关于redhat虚拟机系统新建卷的问题
  • ¥50 WRFDA读取风云四号A 星的GIIRS数据
  • ¥15 C# 爬虫融通金网址实时银价
  • ¥15 热敏电阻NTC,温控不同颜色的LED的亮与灭,PCB
  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重