如何在 v-radio 处于活动和禁用状态时初始化 radiogroup

How to initialize radiogroup when v-radio is active and disabled

我正在使用 vuetify 和 vue js 2.6 我有一个 v-radio-group,其中包含 5 个 v-radio 和 2 个 v-checkbox,我将这些复选框用于 enable/disable 个单选框:
1. 问题一:当其中一个单选框被禁用和激活时,如何初始化v-radio-group。
2. 我想切换复选框,只应选中两者之一,而不是同时选中两者

感谢每一次帮助并响应我的请求 谢谢… 这是代码:

<template>
  <div> 
    <v-radio-group v-model="radiogroup">
      <v-radio label="Radio 1" value="radio1"></v-radio>
      <v-radio label= "Radio 2"value="radio2"></v-radio>
      <v-radio
        label="Radio 3"
        value="radio3"
        :disabled="check2 || check1"
      ></v-radio>
      <v-radio
        label="Radio 4"
        value="radio4"
        :disabled="check2"
      ></v-radio>
      <v-radio
        label="Radio 5"
        value="radio5"
        :disabled="disableradio"
      ></v-radio>
    </v-radio-group>
    <v-checkbox label="Check 2" v-model="check2"></v-checkbox>
    <v-checkbox label="Check 1" v-model="check1"></v-checkbox>
  </div>
</template>
<script>
export default {
  data() {
    return {
      disableradio: true,
      check1: false,
      check2: false,
      radiogroup: "radio1",
      },
    },
};
</script>

已更新,因为我没有完全回答问题。

第一个问题,能详细说说吗?当禁用和激活时,初始化是什么意思?

对于第二个问题,您描述的是一个无线电组(只能激活一个复选框)。但是,如果您真的希望它与复选框一起使用,以下内容可能会有所帮助:

<v-checkbox label="Check 1" v-model="check1" @change="check2=false"></v-checkbox>
<v-checkbox label="Check 2" v-model="check2" @change="check1=false"></v-checkbox>

由于 q1 的详细说明而进行的额外更新:

<template>
  <div> 
    <v-radio-group v-model="radiogroup">
      <v-radio label="Radio 1" value="radio1"></v-radio>
      <v-radio label= "Radio 2"value="radio2"></v-radio>
      <v-radio label="Radio 3" value="radio3" :disabled="check2 || check1"></v-radio>
      <v-radio label="Radio 4" value="radio4" :disabled="check2" ></v-radio>
      <v-radio label="Radio 5" value="radio5" :disabled="disableradio"></v-radio>
    </v-radio-group>
    <v-checkbox label="Check 2" v-model="check2" @change="checkboxHandler("check2")></v-checkbox>
    <v-checkbox label="Check 1" v-model="check1" @change="checkboxHandler("check1")></v-checkbox>
  </div>
</template>
<script>
export default {
  data() {
    return {
      disableradio: true,
      check1: false,
      check2: false,
      radiogroup: "radio1",
      },
    },
    methods: {
      checkboxHandler(type) {
        if (type === "check1") this.check2 = false
        if (type === "check2") this.check1 = false

        if (this.radiogroup === "radio3" && (this.check1 || this.check2) ) this.radiogroup = "radio1"
        if (this.radiogroup === "radio4" && this.check2 ) this.radiogroup = "radio1"
      }
    },
};
</script>

我非常不同意 Jens 的 v-model 声明。根据 vuejs docs v-model 是一个在表单输入上创建双向数据绑定的指令。

post 完美地解释了为什么你应该使用 v-model。

tldr :v-model 本质上与:

相同
    <input
       v-bind:value="something"
       v-on:input="something = $event.target.value">

所以为了回答你的问题,我的建议是简单地禁用一个已选中的 v-checkbox。

    <v-checkbox label="Check 2" v-model="check2" :disabled="check1"></v-checkbox>
    <v-checkbox label="Check 1" v-model="check1" :disabled="check2"></v-checkbox>