小程序把页面分为上下两部分,上部为表单,下方为列表,在表单中输入学生学籍信息,点击添加按钮,把学籍信息添加到列中显示,并清空表单输入的数据。 * 学籍信息包括 * 姓名:text * 性别 :radio * 出生年月 :picker * 籍贯:picker * 爱好:checkbox * 提示,学籍信息可以定义为数组,每个学生信息为一个对象,每添加一个学生,就创建一个对象,并把对象添加到数组中,页面的列表使用循环输出数组中的对象 */
时间: 2024-02-06 12:11:25 浏览: 159
微信小程序仿《乐词》背单词APP源码
5星 · 资源好评率100%
好的,您的问题是如何实现这个小程序的功能?
首先,我们需要在页面的 wxml 文件中定义上下两部分,可以使用 `view` 标签和 `scroll-view` 标签。上部分可以使用 `form` 标签包裹输入控件,下部分可以使用 `scroll-view` 标签加上 `wx:for` 循环输出学生信息列表。
在 `form` 标签中,可以使用 `input` 标签和 `radio-group` 标签等实现学生信息的输入控件。在添加按钮的点击事件中,可以通过 `this.selectComponent('#form').getFormData()` 获取表单数据,并将其添加到学籍信息数组中。同时,可以通过 `setData` 方法清空表单中的数据。
在 `scroll-view` 标签中,可以使用 `block` 标签和 `wx:for` 循环输出学生信息数组中的每个学生信息。可以在 `block` 标签中放置 `view` 标签和 `text` 标签等,以展示每个学生的详细信息。
以上是一个简单的实现思路,具体代码实现可以参考以下示例代码:
```html
<!-- index.wxml -->
<view class="container">
<!-- 上部分表单 -->
<form id="form">
<view class="form-item">
<text class="label">姓名</text>
<input class="input" name="name" />
</view>
<view class="form-item">
<text class="label">性别</text>
<radio-group class="radio-group" name="gender">
<radio class="radio" value="male">男</radio>
<radio class="radio" value="female">女</radio>
</radio-group>
</view>
<view class="form-item">
<text class="label">出生年月</text>
<picker class="picker" name="birthday">
<view class="picker-text">{{birthday}}</view>
</picker>
</view>
<view class="form-item">
<text class="label">籍贯</text>
<picker class="picker" name="hometown">
<view class="picker-text">{{hometown}}</view>
</picker>
</view>
<view class="form-item">
<text class="label">爱好</text>
<checkbox-group class="checkbox-group" name="hobbies">
<checkbox class="checkbox" value="reading">阅读</checkbox>
<checkbox class="checkbox" value="sports">运动</checkbox>
<checkbox class="checkbox" value="music">音乐</checkbox>
</checkbox-group>
</view>
<view class="form-item">
<button class="btn" bindtap="addStudent">添加</button>
</view>
</form>
<!-- 下部分列表 -->
<scroll-view class="list" scroll-y="true">
<block wx:for="{{students}}" wx:key="{{item.id}}">
<view class="item">
<text class="name">{{item.name}}</text>
<text class="info">{{item.gender}} | {{item.birthday}} | {{item.hometown}} | {{item.hobbies.join(',')}}</text>
</view>
</block>
</scroll-view>
</view>
```
```js
// index.js
Page({
data: {
students: [], // 学籍信息数组
birthday: '', // 出生年月
hometown: '', // 籍贯
},
onLoad: function () {
// 初始化出生年月和籍贯的数据源
const year = new Date().getFullYear()
const months = Array.from({ length: 12 }, (_, i) => `${i + 1}月`)
const days = Array.from({ length: 31 }, (_, i) => `${i + 1}日`)
const hometowns = ['北京', '上海', '广州', '深圳', '杭州', '成都']
this.setData({
birthday: `${year}年1月1日`,
hometown: hometowns[0],
year,
months,
days,
hometowns,
})
},
// 添加学生信息
addStudent: function () {
const formData = this.selectComponent('#form').getFormData()
const student = {
id: Date.now(),
...formData,
}
const students = this.data.students.concat(student)
this.setData({
students,
})
this.selectComponent('#form').clearFormData()
},
})
```
阅读全文