【问题标题】:Vue, getting sender element on change eventVue,在更改事件中获取发送者元素
【发布时间】:2018-02-25 16:06:54
【问题描述】:

我刚刚学习 VUE,我一直在尝试一些简单的事情,比如获取 @change 事件的发送者元素。 我的标记看起来像这样

<v-text-field label="Takst 1" ref="tarif1Input" v-model="Income.Tariffs[0]" field="@SecurityHelper.SimpleCrypt("CUST_TARIFF1")" @@change="tariffChanged"></v-text-field>

事件是这样连接起来的:

methods: {
                tariffChanged: function (newVal) {
                    var $s = $(this.$refs.tarif1Input.$el).find('input');
                    var newValue = $s.getValue();

                    $.post('/api/Budget/SaveTariff', {
                        FieldKey: $s.attr('field'),
                        Value: newVal
                    }).done(function () {
                        app.populateIncome();
                    });
                }
}

我设法获取发送元素的唯一方法是使用 refs 并使用 this : this.$refs.tarif1Input.$el 但这真的是最好的方法吗?我不能以某种方式通过函数参数获取发送元素。

这似乎是在 javascript 中手动连接的一种倒退;有点像过度使用全局变量。

我正在使用 vuetifyjs。

【问题讨论】:

    标签: javascript vuejs2 single-page-application vuetify.js


    【解决方案1】:

    看看这个小提琴https://jsfiddle.net/55e46mn3/4/

    <div id="app">
      <input type="text" @change="tariffChange"/>
    </div>
    

    const app = new Vue({
        el: '#app',
    
        methods: {
            tariffChange(event) {
               const inputTarget = event.target;
               console.log(inputTarget.value)
            }
        }
    })
    

    【讨论】:

    • 嗯,在我的情况下,唯一的论点是新值。 ..但是您让我朝着正确的方向前进,我使用了@change.native(“[function]”)的那个id,它按照您的描述工作。.对您的建议稍作改动,答案是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    相关资源
    最近更新 更多