vue3使用表单el-form的坑+el-input无法输入+el-date-picker选择时间不能赋值

10 篇文章 0 订阅
5 篇文章 0 订阅

 遇到一个大坑,弄了好几个小时才找到问题。

vue3使用el-form的时候,如下代码,会导致输入框无法输入,无法赋值,选择框无法选择

<el-form class="my-form" ref="form" :model="form" label-width="80px">
    <el-form-item label="活动名称">
      <el-input v-model="form.name"></el-input>
    </el-form-item>
    <el-form-item label="活动时间">
      <el-date-picker
        type="date"
        placeholder="选择日期"
        v-model="form.date"
        style="width: 100%;"
        value-format="YYYY-MM-DD"
      ></el-date-picker>
    </el-form-item>
    <el-form-item label="活动形式">
      <el-input type="textarea" v-model="form.desc"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="onSubmit">立即创建</el-button>
      <el-button>取消</el-button>
    </el-form-item>
  </el-form>
    setup() {
      const state = reactive({
        form: {
          name: '1',
          date: '',
          desc: ''
        }
      })

      function onSubmit() {

      }

      return {
        ...toRefs(state),
        onSubmit
      }
    }

是什么引起来的呢?

由于ref命名和model一样导致出现了这样的问题

原因就是el-form声明了ref="form",导致state中声明的form被覆盖,有冲突了,修改ref="form1"或者model="formData"(这个名字大家随便起啦)问题解决

那么为什么他俩会冲突呢我也不知道,求大佬指导,以后要是知道了我在来更新

解决方法

既然知道冲突了,解决方法就是改名喽

我是修改为如下就可正常执行了

<el-form class="my-form" ref="form" :model="formData" label-width="80px">
    <el-form-item label="活动名称">
      <el-input v-model="formData.name"></el-input>
    </el-form-item>
    <el-form-item label="活动时间">
      <el-date-picker
        type="date"
        placeholder="选择日期"
        v-model="formData.date"
        style="width: 100%;"
        value-format="YYYY-MM-DD"
      ></el-date-picker>
    </el-form-item>
    <el-form-item label="活动形式">
      <el-input type="textarea" v-model="formData.desc"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="onSubmit">立即创建</el-button>
      <el-button>取消</el-button>
    </el-form-item>
  </el-form>
setup() {
      const state = reactive({
        formData: {
          name: '1',
          date: '',
          desc: ''
        }
      })

      function onSubmit() {

      }

      return {
        ...toRefs(state),
        onSubmit
      }
    }

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天才和人才就差了二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值