给我uni-app 一个提交基本信息的页面,有姓名,单选的性别男女,生日,一个可选的报名,和提交按钮。其中使用v-if指令,选择报名开关显示报名信息表单。报名信息表填家庭住址和选择课程的代码
时间: 2024-09-27 12:13:43 浏览: 40
uni-app 封装一个顶部选项卡组件
5星 · 资源好评率100%
为了创建一个基于uni-app的基础信息提交页面,我们可以按照以下结构进行布局:
- 使用`<input>`标签来收集用户的姓名和生日;
- 利用`<radio>`或`<picker mode="selector">`来让用户选择性别;
- 设计一个开关(toggle),当开启时利用`v-if`指令展示出额外的报名信息输入框,如家庭地址以及所选课程选项;
- 最后是提交按钮,用于提交整个表单。
### 示例代码片段
这里给出的是一个非常基础的概念性示例,并未提供完整的HTML文件,而是展示了如何组织各个部分的内容。
#### 模板部分
```html
<!-- 姓名 -->
<input type="text" placeholder="请输入您的姓名" v-model="form.name"/>
<!-- 性别 -->
<label v-for="(item, index) in genderOptions" :key="index">
<radio :value="item.value" v-model="form.gender">{{ item.text }}</radio>
</label>
<!-- 生日 -->
<input type="date" placeholder="请选择您的出生日期" v-model="form.birthday"/>
<!-- 报名开关 -->
<switch @change="toggleForm" v-model="isEnrollmentVisible"></switch>
<!-- 如果开启了报名,则显示此表单 -->
<div v-if="isEnrollmentVisible">
<!-- 家庭住址 -->
<input type="text" placeholder="请输入家庭地址" v-model="form.address"/>
<!-- 可选择的课程 -->
<view v-for="(course, cid) in courseList" :key="cid">
<checkbox :value="course.id" @click="selectCourse(course)">
{{ course.name }}
</checkbox>
</view>
</div>
<!-- 提交按钮 -->
<button @tap="submitForm">提交</button>
```
#### 数据和方法定义 (在对应的.vue组件脚本中)
```javascript
export default {
data() {
return {
form: {
name: '',
gender: 'male',
birthday: '',
address: '',
courses: []
},
isEnrollmentVisible: false,
genderOptions: [{ text: '男', value: 'male' }, { text: '女', value: 'female' }],
courseList: [
{'id': '1', 'name': 'Java程序设计'},
{'id': '2', 'name': '数据结构'},
{'id': '3', 'name': '机器学习'}
]
};
},
methods: {
toggleForm(e){
this.isEnrollmentVisible = e.target.value;
},
selectCourse(course){
if(!this.form.courses.includes(course)){
this.form.courses.push(course);
} else {
// Remove the course from selected list if already exists
let index = this.form.courses.findIndex(c => c.id === course.id);
this.form.courses.splice(index, 1);
}
},
submitForm(){
console.log('Form submitted:', JSON.stringify(this.form));
}
}
}
```
这个简单的例子展示了如何通过uni-app来构建一个基本的信息收集表单,包含了文本输入、单选、日期选择器、切换开关等元素。同时演示了如何使用`v-if`来动态地显示或者隐藏某些表单字段,比如这里的报名信息。最后还有一个提交按钮,用来触发提交动作并将表单中的所有信息以JSON形式打印到控制台。请注意,实际开发过程中可能需要进一步完善样式和其他交互细节。
阅读全文