前言
该代码片段只支持问卷调查的单选功能
使用组件库
配置 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架 (uviewui.com)
代码
<template>
<view>
<view v-for="(item, index) in radiolist1" :key="index">
<view>{{ item.title }}</view>
<u-radio-group v-model="selectedValues[index]" placement="column">
<u-radio
v-for="(aitem, aindex) in item.option"
:key="aindex"
:label="aitem.value"
:name="aitem.name"
></u-radio>
</u-radio-group>
</view>
<view>
<button @click="onSumbit">点击获取到这个值</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
radiolist1: [
{
id:1,
title: '这是第一题',
option: [
{ name: '选项一', value: '选项一' },
{ name: '选项二', value: '选项二' },
{ name: '选项三', value: '选项三' },
],
},
{
id:2,
title: '这是第二题',
option: [
{ name: '选项一', value: '选项一' },
{ name: '选项二', value: '选项二' },
{ name: '选项三', value: '选项三' },
],
},
],
selectedValues: [], // 初始化一个空数组来存储每个radio-group的选中状态
};
},
created() {
// 在组件创建时,初始化selectedValues数组的长度与radiolist1相同,并将每个元素设置为空字符串
this.selectedValues = this.radiolist1.map(() => '');
},
methods: {
onSumbit() {
console.log(this.selectedValues, 'this.selectedValues'); // 输出每个radio-group的选中状态
},
},
};
</script>
效果图
结束语
如果需要多选和填空,可以根据,类型判断是填空还是多选,选择不同的组件来渲染即可!
有什么不足的地方,请大家多多指教!点个赞啦!