用微信小程序.设计一款有下列组件的表单问卷: (1)有开关选择器、滑动选择器、单项选择器、多项选择器、单行输入框等组件。 (2)有“提交”“重置”按钮。 2.请创建两个页面,通过按钮来相互切换
时间: 2024-02-05 13:03:03 浏览: 73
好的,下面是一个简单的微信小程序表单问卷的实现方法:
1. 在第一个页面中添加表单元素:
```html
<view class="container">
<view class="form-item">
<view class="form-label">问题1:你喜欢的颜色是什么?</view>
<picker mode="selector" range="{{colors}}" bindchange="bindPickerChange">
<view class="form-input">
{{selectedColor}}
</view>
</picker>
</view>
<view class="form-item">
<view class="form-label">问题2:你是否喜欢运动?</view>
<switch checked="{{switchChecked}}" bindchange="bindSwitchChange"></switch>
</view>
<view class="form-item">
<view class="form-label">问题3:你喜欢的水果是什么?</view>
<radio-group bindchange="bindRadioChange">
<label class="radio-item" wx:for="{{fruits}}">
<radio value="{{item}}">{{item}}</radio>
{{item}}
</label>
</radio-group>
</view>
<view class="form-item">
<view class="form-label">问题4:你喜欢的宠物是什么?</view>
<checkbox-group bindchange="bindCheckboxChange">
<label class="checkbox-item" wx:for="{{pets}}">
<checkbox value="{{item}}">{{item}}</checkbox>
{{item}}
</label>
</checkbox-group>
</view>
<view class="form-item">
<view class="form-label">问题5:你的姓名是?</view>
<input type="text" placeholder="请输入姓名" bindinput="bindInput"></input>
</view>
<view class="form-item">
<button class="submit-btn" bindtap="submitForm">提交</button>
<button class="reset-btn" bindtap="resetForm">重置</button>
</view>
</view>
```
在这个例子中,我们添加了一个滑动选择器、一个开关选择器、一个单项选择器、一个多项选择器和一个单行输入框,以及一个“提交”和“重置”按钮。我们通过 `bindchange`、`bindinput` 等事件来监听表单元素的变化,并将用户输入的数据保存到页面数据中。
2. 在第一个页面的 .js 文件中定义表单元素的选项和默认值:
```javascript
Page({
data: {
colors: ['红色', '黄色', '蓝色', '绿色'],
selectedColor: '红色',
switchChecked: false,
fruits: ['苹果', '香蕉', '橘子', '葡萄'],
selectedFruit: '',
pets: ['狗', '猫', '兔子', '鸟'],
selectedPets: [],
name: ''
},
bindPickerChange: function (e) {
this.setData({
selectedColor: this.data.colors[e.detail.value]
})
},
bindSwitchChange: function (e) {
this.setData({
switchChecked: e.detail.value
})
},
bindRadioChange: function (e) {
this.setData({
selectedFruit: e.detail.value
})
},
bindCheckboxChange: function (e) {
this.setData({
selectedPets: e.detail.value
})
},
bindInput: function (e) {
this.setData({
name: e.detail.value
})
},
submitForm: function () {
// 提交表单数据
},
resetForm: function () {
// 重置表单数据
}
})
```
在这个例子中,我们定义了表单元素的选项和默认值,并通过 `setData` 方法更新页面数据。另外,我们还定义了两个按钮的点击事件,用于提交和重置表单数据。
3. 在第一个页面的 .wxss 文件中定义表单元素的样式:
```css
.container {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 20px;
}
.form-item {
margin-bottom: 10px;
}
.form-label {
font-size: 16px;
line-height: 30px;
}
.form-input {
font-size: 16px;
line-height: 30px;
color: #007aff;
border: 1px solid #007aff;
border-radius: 5px;
padding: 5px;
width: 200px;
height: 30px;
}
.submit-btn {
background-color: #007aff;
color: #fff;
border-radius: 5px;
padding: 5px 10px;
margin-right: 10px;
}
.reset-btn {
background-color: #fff;
color: #007aff;
border-radius: 5px;
padding: 5px 10px;
border: 1px solid #007aff;
}
```
在这个例子中,我们定义了表单元素的样式,包括选择器、输入框和按钮的样式。
4. 在第二个页面中添加一个按钮来切换到第一个页面:
```html
<view class="container">
<button class="switch-btn" bindtap="switchPage">切换到第1页</button>
</view>
```
在这个例子中,我们只添加了一个按钮,并通过 `bindtap` 事件来监听按钮的点击。在按钮的点击事件中,我们使用 `wx.navigateTo` 方法来跳转到第一个页面。
5. 在第二个页面的 .js 文件中定义按钮的点击事件:
```javascript
Page({
switchPage: function () {
wx.navigateTo({
url: '../index/index'
})
}
})
```
在这个例子中,我们只定义了一个按钮的点击事件,用于跳转到第一个页面。
6. 在第二个页面的 .wxss 文件中定义按钮的样式:
```css
.container {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 20px;
}
.switch-btn {
background-color: #007aff;
color: #fff;
border-radius: 5px;
padding: 5px 10px;
}
```
在这个例子中,我们只定义了一个按钮的样式。
以上就是一个简单的微信小程序表单问卷的实现方法。希望能对你有所帮助!
阅读全文