我试图使用Vuejs 2获取keyup上的输入值,但总是得到一个空结果,比如数据.请参阅下面的代码.

HTML:

<input type="email" @keyup="this.$data.email= $event.target.value" class="form-control" id="email" placeholder="Username (your work email)">
<button type="button" class="btn btn-primary btn-block inactive" @click="submit">Log in</button>

脚本:

data () {
  return {
    email: '',
  }
},
methods: {
  submit () {
    alert(this.$data.email)
  }
}

推荐答案

你需要参考email(而不是this.$data.email):

<input type="email" @keyup="email = $event.target.value" class="form-control" id="email" placeholder="Username (your work email)">

但是,为什么不使用v-modelemail绑定到输入呢?

new Vue({
  el: '#app',
  data () {
    return {
      email: '',
    }
  },
  methods: {
    submit () {
      alert(this.email)
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.2/vue.min.js"></script>
<div id="app">
  <input type="email" v-model="email" class="form-control" id="email" placeholder="Username (your work email)">
  <button type="button" class="btn btn-primary btn-block inactive" @click="submit">Log in</button>
</div>

Vue.js相关问答推荐

VueJS不会呈现一个名为None的组件""

具有VUE身份验证的Azure AD

如何在Vue 3中将动态特性从主零部件同步到子零部件

绑定事件在渲染函数中不起作用

使用计算(computed)属性更改视图

Vue 脚本标签中更漂亮的 destruct 功能

在 Vuejs 中Watch观察 window.scrollY 的变化

使用 aria-live 在 vue.js 中向屏幕阅读器宣布信息

事件 click点击的无效处理程序:未定义

更新 vue.js 中的数据属性/对象

Vuejs模板继承

正确的 vueJS 方法将props与数据同步

Vue 动态组件事件绑定

简单的点击功能不触发

Vuejs css 范围性能

如何通过 Axios 发送文件到 Laravel

laravel vuejs/axios put request Formdata 为空

vue 未在实例上定义,但在渲染期间引用

我们可以像在 Angular 中一样创建 Vue.js 组件时将 HTML、JS 和 CSS 文件分开吗?

如何将单选按钮绑定到 vuex store ?