5

我无法在其事件处理程序中获取触发事件的 html 字段(在 javascript 中是event.target)。

我有一个表格:

  • 在更改事件上附加到函数的输入元素
  • 管理变更事件的函数

我的代码如下:

var Main = {
    methods: {
      change(par) {
        console.log("The value is: " + par);
        //HERE I can't get "event.target"
      }
    }
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@1.4.0-beta.1/lib/index.js"></script>
<div id="app">
  <template>
    <el-input @change="change" placeholder="Input something here"/>
  </template>
</div>

我知道我可以调用不同的函数,并且在每个函数中我都知道谁是相对输入,但我想使用一个通用的。

按照我在element-ui.common.js事件触发代码中看到的堆栈跟踪:

handleChange: function handleChange(event) {
  this.$emit('change', event.target.value);
},

并且element只将值传递给事件处理程序。
无论如何,任何想法得到event.target,拜托?

谢谢

4

2 回答 2

3

您可以使用@input.native

var Main = {
    methods: {
      change(event) {
        console.log("The value is: " + event.target.value);
        //HERE I can't get "event.target"
      }
    }
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@1.4.0-beta.1/lib/index.js"></script>
<div id="app">
  <template>
    <el-input @input.native="change" placeholder="Input something here"/>
  </template>
</div>

于 2017-12-18T19:40:18.630 回答
1

看起来 Element UI 只是吃掉了事件并且只返回了值。您可以做的不是@change(change)is@keyup.native(change)然后您的par参数将是事件而不仅仅是值。

于 2017-12-18T17:50:04.550 回答