介绍
怎么在小程序中实现单选多选功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强> 1,模拟实现多选框:强>
实现思路:思路非常简单,给每个选项绑定检查属性,类型为布尔值,点击取反即可
& lt; ! - wxml祝辞 & lt; view 类=& # 39;包# 39;比; ,& lt; view 类=& # 39;checkbox-con& # 39;比; ,& lt; checkbox-group  bindchange=癱heckboxChange"比; & lt;才能label 类=皗{item.checked ? & # 39; checkbox 检查# 39;:& # 39;复选框# 39;}},,天气:为=皗{checkboxArr}}“, bindtap=& # 39;复选框# 39;,材料指数=皗{指数}},,天气:关键=癷tem.name"比; & lt;才能checkbox 价值=https://www.yisu.com/zixun/{{item.name}}”检查=" {{item.checked}} "/> {{item.name}} >标签 复选框组> <按钮类型=俺跫丁眀indtap='确认'>提交> 按钮 视图> 视图>
/*, wxss */.wrap { ,宽度:550 rpx; ,保证金:50 rpx 汽车 } , .checkbox-con { ,margin-top: 40 rpx; ,text-align:中心 } .checkbox { ,宽度:260 rpx; ,身高:72 rpx; ,行高:72 rpx; ,字体大小:28 rpx; ,颜色:# 888888; ,边界:1 rpx solid # CECECE; ,这个特性:5 rpx; ,显示:inline-block; ,保证金:0,10 rpx 20 rpx 0; ,位置:相对的 } 支票{ ,颜色:# 1 a92ec; 背景:大敌;rgba (49165253, 0.08); ,边界:1 rpx solid # 31 a5fd; } {.checkbox 复选框 ,显示:没有 } .checked-img { ,宽度:28 rpx; ,高度:28 rpx; ,位置:绝对; ,上图:0; ,右:0 }
js:,
,页({ ,数据:{ ,checkboxArr: [{ ,,名字:& # 39;选项一个# 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项b,, 检查才能:假 ,},{ ,,名字:& # 39;选项c # 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项d # 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项e # 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项f # 39;, 检查才能:假 }), }, 复选框:大敌;function (e), { ,var index =, e.currentTarget.dataset.index;//获取当前点击的下标 ,var checkboxArr =, this.data.checkboxArr;//选项集合 (指数),checkboxArr .checked =, ! checkboxArr(指数)支票;//改变当前选中值的检查 ,this.setData ({ checkboxArr才能:checkboxArr ,}); }, ,checkboxChange: function (e), { ,var checkValue =, e.detail.value; ,this.setData ({ checkValue才能:checkValue ,}); }, ,证实:函数(),{//,提交 ,console.log (this.data.checkValue)//所有选中的项的值 }, })
<强> 2,模拟实现单选框强>
思路:这个和多选差不多,区别就是需要在点击时清空其他项的选中状态,然后再把当前项设置为选中状态
代码也差不多
wxml的话就把check group标签改为单选组合;js那边就在点击时多加个判断
& lt; ! - wxml祝辞 & lt; view 类=& # 39;包# 39;比; ,& lt; view 类=& # 39;checkbox-con& # 39;比; ,& lt; radio-group  bindchange=皉adioChange"比; & lt;才能label 类=皗{item.checked ? & # 39; checkbox 检查# 39;:& # 39;复选框# 39;}},,天气:为=皗{checkboxArr}}“, bindtap=& # 39;射频和# 39;,材料指数=皗{指数}},,天气:关键=癷tem.name"比; & lt;才能checkbox 价值=https://www.yisu.com/zixun/{{item.name}}”检查=" {{item.checked}} "/> {{item.name}} >标签 单选组合> <按钮类型=俺跫丁眀indtap='确认'>提交> 按钮 视图> 视图>
,页({ ,数据:{ ,checkboxArr: [{ ,,名字:& # 39;选项一个# 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项b,, 检查才能:假 ,},{ ,,名字:& # 39;选项c # 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项d # 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项e # 39;, 检查才能:假 ,},{ ,,名字:& # 39;选项f # 39;, 检查才能:假 }), }, 收音机:大敌;function (e), { ,var index =, e.currentTarget.dataset.index;//获取当前点击的下标 ,var checkboxArr =, this.data.checkboxArr;//选项集合 (指数),if (checkboxArr支票),返回;//如果点击的当前已选中则返回 ,checkboxArr.forEach (item =祝辞,{ item.checked 才能=false ,}) (指数),checkboxArr .checked =,真的,//改变当前选中值的检查 ,this.setData ({ checkboxArr才能:checkboxArr ,}); }, ,radioChange: function (e), { ,var checkValue =, e.detail.value; ,this.setData ({ null null null null null null null怎么在小程序中实现单选多选功能