vue中,radio或者checkbox如何默认选中

发布于 2022-09-06 21:50:06 字数 1247 浏览 38 评论 0

有一个radio或者checkbox选项框组,如下:

 <ul>
    <li class="item" v-for="item in attrList">
        <input :type="radio"
               :id="getId()"
               name="attrItem"
               :class="inputClass"
               :value="item.propertyValueId"
               v-model="checkedList">
        <label :for="getId(false)" :title="item.valueData">{{ item.valueData}}</label>
    </li>
</ul>
        

 data() {
        return {
            checkedList: [this.propertyValueId]
        },
        props: {
            propertyValueId: {
                type: Number,
                default: null
            },
            // 0-radio  1-checkbox
            inputType: {
                type: Number,
                default: 1
            },
            
            attrList: {
                type: Array,
                default: []
            }
        }   
     

其中,attrList的数据格式如下:

[         
  {
    propertyValueId: 1,
    valueData: "sku1 text alias"
  },
   {
    propertyValueId: 2,
    valueData: "sku1 text alias"
  },
   {
    propertyValueId: 3,
    valueData: "sku1 text alias"
  }
]

如何根据传入的propertyValueId来默认选中响应的框?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

叹沉浮 2022-09-13 21:50:06
 <ul>
    <li class="item" v-for="item in attrList">
        <input :type="inputClass"
               :class="inputClass"
               :id="getId()"
               :value="item.propertyValueId"
               v-model="checkedList">
        <label :for="getId(false)" :title="item.valueData">{{ item.valueData}}</label>
    </li>
</ul>
                
data() {
    return {
        checkedList: this.inputType === global.INPUT_TYPE.CHECK_BOX ? [] : this.propertyValueId
    }
},            
   

 computed: {
        // checkbox or radio
        inputClass() {
            return this.inputType === global.INPUT_TYPE.CHECK_BOX ? 'checkbox' : 'radio'
        }
    }
    
    
    checkbox和radio要区别对待,radio不能放在数组里面。
薄荷港 2022-09-13 21:50:06
<li class="item" v-for="item in attrList">
    <input type="radio"
           :id="getId()"
           name="attrItem"
           :class="inputClass"
           :value="item.propertyValueId"
           :checked="ifchecked(item.propertyValueId)"
           v-model="checkedList">
    <label :for="getId(false)" :title="item.valueData">{{ item.valueData}}</label>
</li>
然后再methods里面定义
ifchecked(prop){
    if(prop=='??'){//逻辑自己写
    return true}
}
我测试过了,可以的,type前面的:去掉

把checkedList放到vue的data里面,且给它一个默认值。BTW,radio button是单选,所以怎么能命名对应的model叫checkedList呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文