首页 > 解决方案 > 输入事件似乎在 vuetify 复选框上不可用?

问题描述

当用户选择我通过渲染的复选框之一时,我想调用一个方法v-for。它们都通过 绑定到一个变量v-model。问题是input似乎在 上不可用v-checkbox。以下代码不执行任何操作:

<template>
    <v-container>
        <v-layout row>
                <v-flex xs12>
                <v-layout justify-center>
                    <v-form ref="form" lazy-validation>
                        <v-checkbox
                        v-for="(answer, index) in questions[actualIndex].answers"
                        :key="index"
                        :ref="'check'+index"
                        :label="answer.answer"
                        :value="answer.answer"
                        v-model="checkbox"
                        @input="onInput()"
                        ></v-checkbox>
                    </v-form>
                </v-layout>
            </v-flex>
            </v-layout>
    </v-container>
</template 
export default {
data() {
    return {
    checkbox: ''
        }
    },
methods: {
onInput() {
        console.log("WORKS");

    }

  }
}

但是,如果我改用@changeor@click事件,它会完美运行。任何想法我做错了什么?

标签: checkboxvue.jsinputvuetify.js

解决方案


v-modelforVCheckbox绑定到input-value道具和change事件,所以它不会对input事件做出反应。从规范中看并不是很明显,我必须阅读源代码才能理解它。

当我需要做一些比简单地更新变量更复杂的事情时,我会这样做。

    <v-checkbox
        :input-value="some expression"
        @change="doWhatever($event)"
    ></v-checkbox>

如果您需要的是更新变量并获得回调,那么v-model@change就是要走的路。


推荐阅读