作者:知晓云 - 小程序开发快人一步
来源:知晓课堂

医疗急救卡小程序是什么?

该小程序主要为一个表单的填写与提交。示例表单的内容包括姓名、性别、血型、医疗情况、服药情况、是否为器官捐献者和紧急联系人电话号码。提交成功后表单显示用户已填写的信息,如果用户想更新,直接更改表单内容再次提交即可。

我们所用到的组件和 API

所需组件

  • 表单:form,将组件内用户输入的 等提交; 按钮:button,用以提交表单等;
  • 输入框:input,用户输入姓名和紧急联系人电话号码; 单项选择器:radio-group 和 radio, 用户选择性别;
  • 从底部弹起的滚动选择器:picker, 用户选择血型; 多项选择器:checkbox-group 和 checkbox,用户选择医疗情况;
  • 多行输入框:textarea,用户输入自身服药情况; 开关选择器:switch,用户选择是否为器官捐献者。

所需 API

  • wx.showToast: 显示消息提示框,当用户提交表单后,给予成功或失败提示; wx.makePhoneCall:
  • 拨打紧急联系人电话。

上手开发

卡片展示页面

首次使用小程序,页面将显示一个 「创建医疗急救卡」 的按钮,效果图如下:

点击该按钮后显示表单,效果图如下:

当用户提交过表单后,按钮 “提交” 变为 “更新”,再次加载小程序直接显示表单,此时表单默认信息为上次用户所提交的信息,效果图如下:

首页「创建医疗急救卡」按钮

首次使用小程序,默认显示按钮,隐藏表单(点击按钮后,隐藏按钮,显示表单)

<!-- ./pages/index.index.wxml -->
<view wx:if="{{!isShowMedicalCard}}"><button size="mini" bindtap="showMedicalCard">创建医疗急救卡</button>
</view>// pages/index/index.js
Page({data: {isShowMedicalCard: false,},showMedicalCard: function () {this.setData({isShowMedicalCard: true,})},
})

该 button 按钮中,我们绑定了一个点击事件 showMedicalCard,通过改变 isShowMedicalCard 的值,来控制表单的显示(值为 true)与隐藏(值为 false)。

医疗急救卡表单

form 表单组件

添加表单 form 组件,用以在表单内添加输入框 等组件。

<!-- pages/medical-card/medical-card.wxml -->
<view wx:else><form bindsubmit="formSubmit"></form>
</view>// pages/index/index.js
pages({formSubmit: function (e) {let data = e.detail.value},
})

表单 form 组件中,有 bindsubmit 的属性,它携带表单中各组件的值(需要在相应的组件中加上 name 来作为 key)触发 formSubmit 事件。

该 form 组件绑定的点击事件是 formSubmit,当点击 表单中的 组件时,将会触发该事件。

input 输入框组件

接下来,我们就要添加输入框 input 组件,用以让用户在小程序中输入姓名。

<!-- pages/index/index.wxml -->
<view wx:else><form bindsubmit="formSubmit"><view><view>姓名:</view><input name="name" placeholder="请输入姓名" placeholder-class /></view></form>
</view>

input 的组件属性,如下所示:

  • type: input 的类型,例如文字、密码、邮箱等,以便小程序针对性进行适应。
  • placeholder: 输入框为空时的占位符。
  • placeholder-class: 置顶 placeholder 的样式类。
  • bindinput: 当键盘输入时,触发 input 事件。

radio 单选框组件

接下来,我们要添加单选 radio 组件,用以选择性别。

<!-- pages/index/index.wxml -->
<view><view>性别:</view><radio-group name="gender"><label><radio value="男">男</radio></label><label><radio value="女">女</radio></label></radio-group>
</view>

在单选容器 radio-group 组件中,内部会由多个 radio 组成。

每个 radio-group 组件,可能会有 bindchange 属性,它代表 radio-group 中的选中项发生变化时,触发 change 事件。

每个 radio 组件都可能有以下属性:

  • value ,当该 radio 选中时,radio-group 的 change 事件会携带 radio 的 value。
  • checked: 当前是否选中,默认为 false。

picker 滚动选择器组件

接下来,我们添加 picker 组件(从底部滑起的滚动选择器),用以填写血型。

<!-- pages/index/index.wxml -->
<view><view>血型:</view><picker name="bloodType" bindchange="bloodTypeChange" range="{{bloodTypes}}"><view>当前选择:{{bloodTypes[index]}}</view></picker>
</view>// pages/index/index.js
page({data: {bloodTypes: ['A', 'B', 'AB', 'O', 'RH+', 'RH-', 'Hh/孟买血型', '亚孟买血型', 'P血型'],index: 0,},bloodTypeChange: function (e) {let value = e.detail.valuethis.setData({index: value,})},
})

在每个 picker 组件(普通选择器)中,都可能有这些属性:

  • mode:从底部弹起的滚动选择器,现支持五种类型,通过这个属性来改变,默认是普通选择器(mode = selector)。示例使用普通选择器
  • range: mode 为 selector 或 multiSelector 时, range
    有效。 value: 表示选择了 range 中的第几项(下标从 0 开始)。
  • bindChange: value 改变时触发对应的 change 事件。

在实例中,该 picker 组件绑定的事件是 bloodTypeChange,滚动选项列表将会改变 value 值,从而触发事件。

checkbox 多选框组件

添加多项选择器 checkbox 组件,用以选择医疗情况。

<!-- pages/index/index.wxml -->
<view><view>选择医疗情况:</view><checkbox-group name="medicalConditions"><label><checkbox wx:for="{{medicalConditions}}" wx:key="{{index}}" value="{{item.name}}" checked="{{item.checked}}">{{item.name}}</checkbox></label></checkbox-group>
</view>// pages/index/index.js
pages({data: {medicalConditions: [{ name: '有过敏史', checked: false },{ name: '有过大型手术', checked: false },{ name: '有家族遗传病', checked: false }],},
})

每个多项选择器,内部由多个 checkbox 组成,并使用 checkbox-group 进行组织。

每个 chheckbox-group 都可能有 bindChange 属性,它的意义是当 checkbox-group 中选中项发生改变时触发,将会执行特定函数。

在每个 checkbox 组件中,有可能有以下属性:

  • value: 选中一项时触发 中的 bindChange 事件,并携带 checkbox 的 value 值。
  • disabled: 是否禁用该 checkbox。
  • checked: 设置默认选中项。
  • color: checkbox 的颜色。

textarea 多行文本框组件

添加多行输入框 textarea 组件,用以填写服药情况。

<!-- pages/index/index.wxml -->
<view><view>填写服药情况:</view><textarea name="medicationCompliance" placeholder="请填写服药情况" auto-height="true"></textarea>
</view>

在 textarea 多行输入框属性中,有可能有这些属性:

  • bindinput: 当键盘输入时,触发 bindinput 事件。
  • auto-height: 是否自动增高,默认为 false。

switch 开关组件

添加开关选择器 switch 组件,用以选择是否为器官捐献者。

<!-- pages/index/index.wxml -->
<view><view>是否为器官捐献者:</view><switch name="isOrganDonor"></switch>
</view>

每个开关选择器 switch 组件,都可能有这些属性:

checked: 是否选中,默认为 false。
bindChange: checked 改变时触发 bindChange 事件。

相关阅读

第一章:一文了解小程序
第二章:手把手,动手编写一个简单小程序(上)
第三章:手把手,动手编写一个简单小程序(下)
第四章:如何开发一款内容展示类小程序(上)
第五章:如何开发一款内容展示类小程序(下)
第六章:小程序多媒体相关能力
第七章:在小程序里查询天气(上)
第八章:在小程序里查询天气(下)

关注「知晓云」公众号,点击菜单栏「知晓云」-「知晓课堂」,获取更多开发教程。

第九章:小程序表单与医疗急救卡(上)相关推荐

  1. 第十章:小程序表单与医疗急救卡(下)

    作者:知晓云 - 小程序开发快人一步 来源:知晓课堂 在上一节,我们了解了许多表单组件的用法.在这一节,我们将会继续对小程序进行开发. 特殊功能开发 小程序请求呼出电话 添加输入框 input 组件和 ...

  2. 微信小程序表单post提交数据

    微信小程序以post方式提交数据踩坑 在以post方式提交微信小程序表单数据时,请求头中要添加一条信息 header: {"Content-Type": "applica ...

  3. 医疗急救卡-数据API

    使用小程序表单组件仿IOS健康App创建一个简易版的医疗急救卡 创建文件firstaidCard 首页设计: 未创建医疗急救卡时,此时只显示一个"创建医疗急救卡"按钮:已经创建医疗 ...

  4. 小程序表单提交,服务端推送模板消息通知

    1.小程序按钮表单,提交formid和openid 注:https://blog.csdn.net/qq_38191191/article/details/80982732 2.发送网络请求(小程序点 ...

  5. html做成小程序,HTML-简单表单制作-表单制作-小程序表单制作

    模板!DOCTTYPEhtmlhtmlheadmetacharset="utf-8"/ 1.//此处为输入文本格式,避免乱码现象title此处输入内容/titlestyletype ...

  6. 微信小程序表单提交PHP后台

    一.首先先把小程序页面写好,这个不多说了,直接上代码 <form bindsubmit="formSubmit" bindreset="formReset" ...

  7. 微信小程序表单提交php存储,微信小程序实现form表单本地储存数据

    本文实例为大家分享了微信小程序实现form表单本地储存数据的具体代码,供大家参考,具体内容如下 效果图: 主要利用小程序的getStorage来实现异步本地储存. 小程序目录结构如下: 新建项目前,为 ...

  8. 微信小程序表单验证错误提示。

    在之前,在做填写表单之类的东西时候,凡是需要判断是否合格的, 我都会给他 wx.showToast({ title: '手机号有误!',         icon: 'loading',       ...

  9. 在线设计 html5 表单,html5注册表单制作-表单制作-小程序表单制作

    1.文本框:inputtype="text"/ 2.密码框:inputtype="password"/ 3.单选框:inputtype="radio& ...

最新文章

  1. 这块DIY墨水屏手表火了!外观可盐可甜,无线蓝牙计步闹钟一应俱全 | 开源
  2. 什么情况下会导致@Async异步方法会失效?
  3. wpf xaml突然不能自动补齐代码_Xaml+C#桌面客户端跨平台初体验
  4. 软件的可扩展性与框架的可交互性
  5. 如何量化考核技术人的KPI?
  6. SqlServer2005日志清理
  7. 协作,才能更好的中断线程
  8. 必知必会 | Android 测试相关的方方面面都在这儿
  9. 抖音上热门运营技巧秘诀
  10. 使用树莓派打造家庭监控系统
  11. 有台服务可以干哪些好玩的事
  12. React---关于useCallback和useMemo的详解
  13. 蓝牙广播数据格式和动态改变
  14. XShell SecueCTR工具远程安装激活 连接使用
  15. For Developer-友盟+官网体验升级的打开方式
  16. 深圳中学因招聘上热搜:名校博士挤破头想进,教学成绩也确实不服不行!
  17. 数组求前n项和 和 求中间n项和 学习记录
  18. Smart3D将已经生成的OSGB格式的模型转换成S3C格式
  19. 实战中icon 的使用
  20. 芯片巨头恩智浦的前世今生

热门文章

  1. 抛弃随E行 GPRS包月拨号连接上网图解教程
  2. 风电箱变测控装置(二合一)
  3. 青龙面板2.10.2+xdd-plus搭建详细教程(4.27日)
  4. 调试一段代码两个小时都没搞定,继续死磕还是寻找其他方式?
  5. Pareto 问题详解
  6. 为什么苹果6没有录屏_为什么苹果手机没有杀毒软件,难道不怕中毒?
  7. 烤仔的朋友们丨Bancor 是什么?
  8. 多线程CountDownLatch
  9. 大学生个人简历怎么写+注意事项(适用于保研、就业,亲身经历总结)
  10. Excel 函数功能分享之Find 函数