做者:知曉雲 - 小程序開發快人一步
來源:知曉課堂小程序
該小程序主要爲一個表單的填寫與提交。示例表單的內容包括姓名、性別、血型、醫療狀況、服藥狀況、是否爲器官捐獻者和緊急聯繫人電話號碼。提交成功後表單顯示用戶已填寫的信息,若是用戶想更新,直接更改表單內容再次提交便可。segmentfault
首次使用小程序,頁面將顯示一個 「建立醫療急救卡」 的按鈕,效果圖以下:app
點擊該按鈕後顯示錶單,效果圖以下:函數
當用戶提交過表單後,按鈕 「提交」 變爲 「更新」,再次加載小程序直接顯示錶單,此時表單默認信息爲上次用戶所提交的信息,效果圖以下:this
首次使用小程序,默認顯示按鈕,隱藏表單(點擊按鈕後,隱藏按鈕,顯示錶單)spa
`<!-- ./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,
})
},
}) `3d
該 button 按鈕中,咱們綁定了一個點擊事件 showMedicalCard,經過改變 isShowMedicalCard 的值,來控制表單的顯示(值爲 true)與隱藏(值爲 false)。orm
添加表單 form 組件,用以在表單內添加輸入框 <input/> 等組件。xml
`<!-- 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
},
}) `blog
表單 form 組件中,有 bindsubmit 的屬性,它攜帶表單中各組件的值(須要在相應的組件中加上 name 來做爲 key)觸發 formSubmit 事件。
該 form 組件綁定的點擊事件是 formSubmit,當點擊 <form/> 表單中的 <button formType="submit"></button> 組件時,將會觸發該事件。
接下來,咱們就要添加輸入框 input 組件,用以讓用戶在小程序中輸入姓名。
`<!-- pages/index/index.wxml -->
<view wx:else>
<form bindsubmit="formSubmit">
<view>
<view>姓名:</view>
<input name="name" placeholder="請輸入姓名" placeholder-class />
</view>
</form>
</view> `
input 的組件屬性,以下所示:
接下來,咱們要添加單選 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 組件均可能有如下屬性:
接下來,咱們添加 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.value
this.setData({
index: value,
})
},
})`
在每一個 picker 組件(普通選擇器)中,均可能有這些屬性:
在實例中,該 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 組件中,有可能有如下屬性:
添加多行輸入框 textarea 組件,用以填寫服藥狀況。
`<!-- pages/index/index.wxml -->
<view>
<view>填寫服藥狀況:</view>
<textarea name="medicationCompliance" placeholder="請填寫服藥狀況" auto-height="true"></textarea>
</view> `
在 textarea 多行輸入框屬性中,有可能有這些屬性:
添加開關選擇器 switch 組件,用以選擇是否爲器官捐獻者。
`<!-- pages/index/index.wxml -->
<view>
<view>是否爲器官捐獻者:</view>
<switch name="isOrganDonor"></switch>
</view> `
每一個開關選擇器 switch 組件,均可能有這些屬性:
關注「知曉雲」公衆號,點擊菜單欄「知曉雲」-「知曉課堂」,獲取更多開發教程。