微信小程序 WeUI·Checkbox-group

2022-05-12 17:39 更新

Checkbox-group和Checkbox

Checkbox-group是由一組單選或者多選Checkbox組件組成,效果如下圖所示。

引入組件

在 page.json 中引入組件

{
  "usingComponents": {
    "mp-checkbox-group": "../../components/checkbox-group/checkbox-group",
    "mp-checkbox": "../../components/checkbox/checkbox",
    "mp-cells": "../../components/cells/cells"
  }
}

示例代碼

<!--WXML示例代碼-->
<mp-cells title="單選列表項(xiàng)">
    <mp-checkbox-group prop="radio" multi="{{false}}" bindchange="radioChange">
        <mp-checkbox wx:for="{{radioItems}}" wx:key="value" label="{{item.name}}" value="{{item.value}}" checked="{{item.checked}}"></mp-checkbox>
    </mp-checkbox-group>
</mp-cells>
<mp-cells title="復(fù)選列表項(xiàng)">
    <mp-checkbox-group prop="checkbox" multi="{{true}}" bindchange="checkboxChange">
        <mp-checkbox wx:for="{{checkboxItems}}" wx:key="value" label="{{item.name}}" value="{{item.value}}" checked="{{item.checked}}"></mp-checkbox>
    </mp-checkbox-group>
</mp-cells>
// page.js示例代碼
Page({
    data: {
        radioItems: [
            {name: 'cell standard', value: '0', checked: true},
            {name: 'cell standard', value: '1'}
        ],
        checkboxItems: [
            {name: 'standard is dealt for u.', value: '0', checked: true},
            {name: 'standard is dealicient for u.', value: '1'}
        ],
    },
    radioChange: function (e) {
        console.log('radio發(fā)生change事件,攜帶value值為:', e.detail.value);

        var radioItems = this.data.radioItems;
        for (var i = 0, len = radioItems.length; i < len; ++i) {
            radioItems[i].checked = radioItems[i].value == e.detail.value;
        }

        this.setData({
            radioItems: radioItems,
            [`formData.radio`]: e.detail.value
        });
    },
    checkboxChange: function (e) {
        console.log('checkbox發(fā)生change事件,攜帶value值為:', e.detail.value);

        var checkboxItems = this.data.checkboxItems, values = e.detail.value;
        for (var i = 0, lenI = checkboxItems.length; i < lenI; ++i) {
            checkboxItems[i].checked = false;

            for (var j = 0, lenJ = values.length; j < lenJ; ++j) {
                if(checkboxItems[i].value == values[j]){
                    checkboxItems[i].checked = true;
                    break;
                }
            }
        }

        this.setData({
            checkboxItems: checkboxItems,
            [`formData.checkbox`]: e.detail.value
        });
    },
});

checkbox-group組件屬性列表

屬性類型默認(rèn)值必填說明
ext-classstring添加在組件內(nèi)部結(jié)構(gòu)的class,可用于修改組件內(nèi)部的樣式
multibooleantrue單選還是多選
propstringForm表單組件校驗(yàn)的字段名
bindchangeeventhandlerCheckbox-group發(fā)生改變時候觸發(fā)的事件,detail為{value},單選的value為checkbox的值,多選的value為選中的checkbox的值組成的數(shù)組

checkbox-group的Slot

名稱描述
默認(rèn)內(nèi)容slot

checkbox組件屬性列表

屬性類型默認(rèn)值必填說明
ext-classstring添加在組件內(nèi)部結(jié)構(gòu)的class,可用于修改組件內(nèi)部的樣式
multibooleantrue單選還是多選
checkedboolean是否選中
valuestringcheckbox的值
bindchangeeventhandlerCheckbox發(fā)生改變時候觸發(fā)的事件,detail為{value},value為checkbox的值


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號