You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js2中v-model失效求助:表单字段绑定异常原因排查

解决Vue 2中v-model与:value混用导致失效的问题

嘿,这个问题我之前也踩过坑!核心原因是你同时混用了:value和v-model,这在Vue里是完全冲突的,咱们来理清楚为什么:

为什么会失效?

在Vue 2中,v-model本质是个语法糖,它会自动帮你完成两个操作:

  • 将输入框的value属性绑定到目标变量(也就是你定义的dname)
  • 监听输入框的input事件,把用户输入的内容同步回目标变量

当你同时写:value="addressObj.name"和v-model="dname"时,相当于你手动给value硬赋值为addressObj.name,但v-model又要把value绑定到dname,这两个规则互相干扰,最终导致双向绑定失效,输入框自然无法正常工作。

两种可行的解决方案

根据你的需求,有两种处理方式:

方案1:初始值从addressObj.name获取,后续同步到dname

不需要用:value,直接在组件的生命周期钩子(比如created)里把addressObj.name赋值给dname,让v-model单独处理双向绑定:

data() {
  return {
    dname: '',
    addressObj: { name: '你的初始地址' } // 假设这是你遍历的对象
  }
},
created() {
  // 初始化dname的值
  this.dname = this.addressObj.name;
}

对应的输入框代码只保留v-model:

<input type="text" v-model="dname">

方案2:直接双向绑定addressObj.name

如果你的需求是输入时直接修改addressObj.name,那完全不需要额外的dname变量,直接把v-model绑定到addressObj.name即可:

<input type="text" v-model="addressObj.name">

这样输入框会自动显示addressObj.name的初始值,用户输入时也会直接同步更新这个属性,完美适配你遍历addressObj的场景。

内容的提问来源于stack exchange,提问作者abu abu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:24:06