0

0

Vue.js 中实现可编辑区域内动态插入下拉框并正确获取选中值的完整方案

心靈之曲

心靈之曲

发布时间:2025-12-25 20:53:00

|

699人浏览过

|

来源于php中文网

原创

Vue.js 中实现可编辑区域内动态插入下拉框并正确获取选中值的完整方案

本文详解如何在 vue 应用中,于 `contenteditable` 区域任意光标位置插入响应式下拉框(`

在 Vue 开发中,直接操作 DOM(如 document.createElement + appendChild)插入 未与 Vue 实例数据建立绑定,其 v-model 缺失,导致 getDataModel() 获取的永远是初始值(如第一个选项),而非用户真实选择。

根本解法:放弃手动 DOM 插入,改用声明式渲染 + 光标定位逻辑

虽然 Vue 官方不直接支持“在 contenteditable 光标处插入 Vue 组件”,但我们可通过组合策略实现高保真体验:

✅ 推荐架构:混合模式(文本段落 + 内联组件占位符)

将编辑区域抽象为「富文本片段数组」,每个片段为纯文本或下拉框组件实例,并通过 v-for 渲染。配合光标定位 API,实现“点击按钮时,在当前光标位置插入新下拉框”。

巧文书
巧文书

巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。

下载

立即学习前端免费学习笔记(深入)”;

以下是优化后的完整实现(Vue 2/3 均适用,以 Vue 2 为例):