当前位置: 首页 > news >正文

微信小程序 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 事件响应函数

http://www.lryc.cn/news/419484.html

相关文章:

  • 我在高职教STM32——I2C通信之读写EEPROM(1)
  • 【ARM】应用ArmDS移植最小FreeRTOS系统
  • golang下载、上传文件MD5高效计算方法,利用io.TeeReader函数特性 实时计算文件md5签名
  • TreeMap实现根据值比较
  • 2024前端面试(内容持续更新)
  • 接口基础知识5:详解request headers(一篇讲完常见字段)
  • mac的node使用
  • HTML - 简易版打字练习
  • 【生成式人工智能-四-chatgpt的训练过程-pretrain预训练自督导式学习督导式学习】
  • 期权价格的奥秘:深入理解影响因素
  • STM32-USART时序与寄存器状态分析
  • 从零安装pytorch并在pycharm中使用
  • 开源AI工具FastGPT和RagFlow对比
  • 第N2周:NLP中的数据集构建
  • AI助力浮雕创作!万物皆可浮雕?Stable Diffusion AI绘画【浮雕艺术】之文生浮雕!
  • 你觉得大模型时代该出现什么?
  • JS【详解】事件委托
  • 谈对象系列:C++类和对象
  • 设计模式20-备忘录模式
  • 绘制echarts-liquidfill水球图
  • 应急响应:D盾的简单使用.
  • c语言第14天笔记
  • 服装行业QMS中的来料检验:常见问题解析与解决策略
  • 健身动作AI识别,仰卧起坐计数(含UI界面)
  • GitHub开源金融系统:Actual
  • 【学习笔记】Day 7
  • 网络中特殊的 IP 地址
  • ASP 表单处理入门指南
  • 极米RS10Plus性价比高吗?7款4-6K价位投影仪测评哪款最好
  • RocketMQ怎么对文件进行读写的?