欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 微信小程序 checkbox 实现双向绑定以及特殊交互处理

微信小程序 checkbox 实现双向绑定以及特殊交互处理

2024/10/24 4:31:49 来源:https://blog.csdn.net/CherryLee_1210/article/details/140956033  浏览:    关键词:微信小程序 checkbox 实现双向绑定以及特殊交互处理

wxml文件代码如下:

<!--页面顶部 引入wxs文件-->
<wxs module="tools" src="../../filter/tools.wxs"></wxs>
...
<checkbox-group bindchange="checkboxChange"><label class="weui-cell weui-check__label" wx:for="{{cancerItems}}" wx:key="value"><view class="weui-cell__hd"><checkbox value="{{item.value}}" checked="{{tools.getIncludes(checkedCancers, item.value)}}"/></view><view class="weui-cell__bd">{{item.name}}</view></label>
</checkbox-group>

js代码如下:

Page({data: {// 癌种cancerItems: [{value: 'fou', name: '否'},{value: 'fei', name: '肺癌'},{value: 'ruxian', name: '乳腺癌'},{value: 'wei', name: '胃癌'},{value: 'gan', name: '肝癌'},{value: 'qita', name: '其他'}],checkedCancers: [], // 选择的癌种},checkboxChange (event) {console.log('event', event)let checkedVal = event.detail.valueif (checkedVal[checkedVal.length - 1] === 'fou') { // 如果用户选择了“否”,则其他癌种清空checkedVal = ['fou']} else { // 如果选择癌种或者“其他”,“否”取消选择const index = checkedVal.indexOf('fou')if (index > -1) {checkedVal.splice(index, 1)}if (checkedVal.includes('fou')) { // 如果选择“其他”//}}this.setData({checkedCancers: checkedVal})}
})

所谓tool.getIncludes 方法需要 引入 tool.wxs 文件
文件代码如下:

var tools = {getIncludes: function(val, target) {if(!val) returnif(val.indexOf(target) > -1) {return true} else {return false}}
}
module.exports = {getIncludes: tools.getIncludes
}

注:微信小程序提到:WXS(WeiXin Script)是内联在 WXML 中的脚本段。通过 WXS 可以在模版中内联少量处理脚本,丰富模板的数据预处理能力。另外, WXS 还可以用来编写简单的 WXS 事件响应函数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com