微信小程序 ,选择多选下拉框中的选项后,选项内容会显示在框中。
时间: 2024-03-19 11:46:27 浏览: 163
是的,您说得对,用户选择多选下拉框中的选项后,选项内容会显示在框中。当用户勾选或取消勾选一个选项时,`checkbox-group` 组件会触发 `bindchange` 事件,并将当前选中的所有选项的 `value` 值组成的数组传递给事件处理函数。在事件处理函数中,我们可以根据选中的选项更新 `data` 中的数据,并在页面上展示选中的选项。
以下是一个简单的多选下拉框示例,您可以参考一下:
```html
<view class="container">
<view class="label">请选择您喜欢的水果:</view>
<checkbox-group bindchange="onCheckboxChange">
<label wx:for="{{fruits}}" wx:key="index" class="checkbox">
<checkbox value="{{item.value}}" checked="{{item.checked}}">{{item.label}}</checkbox>
</label>
</checkbox-group>
<view class="value">
{{selectedFruits.join(', ')}}
</view>
</view>
```
在上面的代码中,我们使用了 `checkbox-group` 和 `checkbox` 组件来实现多选下拉框,`fruits` 是一个数组,包含所有水果的名称和是否选中的状态,`selectedFruits` 是一个数组,保存当前选中的水果名称。
以下是对应的 js 代码:
```javascript
Page({
data: {
fruits: [
{ label: '苹果', value: 'apple', checked: false },
{ label: '香蕉', value: 'banana', checked: false },
{ label: '橙子', value: 'orange', checked: false },
{ label: '西瓜', value: 'watermelon', checked: false },
],
selectedFruits: [],
},
onCheckboxChange: function(e) {
const values = e.detail.value;
const fruits = this.data.fruits.map(item => {
item.checked = values.indexOf(item.value) !== -1;
return item;
});
const selectedFruits = fruits.filter(item => item.checked).map(item => item.label);
this.setData({
fruits,
selectedFruits,
});
},
})
```
在上面的代码中,我们定义了一个 `onCheckboxChange` 函数,它会在用户勾选或取消勾选一个选项时被调用。在函数中,我们首先获取当前选中的所有选项的 `value` 值组成的数组,然后遍历选项数组,更新每个选项的选中状态。最后,我们根据选中的选项更新 `selectedFruits` 数组,并调用 `setData` 方法更新页面数据。
当用户勾选或取消勾选一个选项时,页面上显示选中的选项名称会实时更新。
阅读全文