想问一下大佬关于vue ref获取input值的问题?

发布于 2022-09-11 15:31:05 字数 1092 浏览 11 评论 0

想要获取到input的value用value的长度去做判断,但是遇到了一点问题? input是element的el-input下面上代码

<el-input placeholder="请扫入条码" v-model="barId" clearable style="width: 70%;" v-on:input ="inputFunc" ref="barNo"></el-input>

这是布局的代码,末尾加了ref

inputFunc() {
    console.log(this.$refs.barNo)
    console.log(this.$refs.barNo.value)
    const param = {
      BarCode: this.barId
    };
    api.getbarcodeinfo(param).then(response => {
      if (response.data.Success == false) {
        this.$notify({
          title: "失败",
          message: response.data.Message,
          type: "error",
          duration: 2000
        });
      } else {
        console.log(this.$refs.barNo.value)
        // this.barId = "";
      }
    });
  },

这是vue的代码 分别打印了3次input的value值,第一次console能获取到整个input包括里面的value也是有输入框中的值,第二个console的结果为一个null,第三次console却能够打印出value。觉得不太理解,vue文档今天不知道为什么打不开,所以想问一下大佬是什么原因需要怎么解决?谢谢

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岁月如刀 2022-09-18 15:31:05

可以直接获取barId的值

千鲤 2022-09-18 15:31:05

正常情况第二个console.log是可以打印出value的,应该是其他地方有错,我按照你的代码是可以输出的

孤芳又自赏 2022-09-18 15:31:05

不要这样用。ref不是响应式的,之所以第3个有值是因为BarCode: this.barId触发了get进行了依赖收集。
应该改成watch

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文