VueJs Checked 单选按钮组

Posted

技术标签:

【中文标题】VueJs Checked 单选按钮组【英文标题】:VueJs Checked Radio Button group 【发布时间】:2018-08-24 22:58:43 【问题描述】:

我正在使用 vueJs 并且有一个单选按钮组。检查收音机时,如何将 css 边框属性绑定到 :class="selected" 类?

:checked 属性不起作用,因为我已将其绑定到 v-model。

因此,如果选中收音机,则将一个类(选定的)绑定到 div。

<div class="sau-select lg center" :class="selected">
   <label for="windows">
      <input type="radio" id="windows" value="windows" v-model="selectedOs" :checked="checked">
      <span></span>
      <img src="/img/windows.gif" >Windows
   </label>
</div>

【问题讨论】:

类名是什么? .selected,我已经更新了问题 【参考方案1】:

你使用的:class="selected"没有太大作用。

要有条件地将类应用于div,如果selectedOs 等于每个&lt;input&gt;value 属性,则必须使用:class 条件,例如:class="redborder: selectedOs === 'windows'"。更多细节在下面的演示中:

new Vue(
  el: '#app',
  data: 
    selectedOs: 'windows'
  
)
.redborder  border: 1px solid red; 
<script src="https://unpkg.com/vue"></script>

<div id="app">
  <label :class="redborder: selectedOs === 'windows'">
    <input type="radio" value="windows" v-model="selectedOs"> Windows
  </label>

  <label :class="redborder: selectedOs === 'linux'">
    <input type="radio" value="linux" v-model="selectedOs"> Linux
  </label>
</div>

注意value="linux" 表示该单选框会将字符串"linux" 分配给v-model 变量(在本例中为selectedOs)。例如,value="linux" 等价于 :value="'linux'"

【讨论】:

两个输入中都需要 :checked="checked" 吗? 我不认为这有什么区别,所以,没有。要控制它们是否被检查,selectedOs 的值应该与每个相应的value 属性匹配。

以上是关于VueJs Checked 单选按钮组的主要内容,如果未能解决你的问题,请参考以下文章

在一组单选按钮中怎样设置默认选项呢/在哪里设置呢?

客户端代码:查找选中了哪个单选按钮

jQuery设置单选按钮

导轨视图中的多组单选按钮

radio单选按钮组操作

RadioButton控件用法技巧