form表单组件说明:
表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <picker/> 提交。
当点击 <form/> 表单中 formType 为 submit 的<button/> 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key。
form表单组件用法:
重置:<button formType="reset">Reset</button>
form表单组件示例代码运行效果如下:
提交: <button formType="submit">Submit</button>
下面是WXML代码:
- <view class="page">
- <view class="page__hd">
- <text class="page__title">表单控件</text>
- </view>
- <form class="page__bd" catchsubmit="formSubmit" catchreset="formReset">
- <view class="section">
- <view class="section__title">您的姓名:</view>
- <input name="name" placeholder="姓名:" />
- </view>
- <view class="section section_gap">
- <view class="section__title">性别:</view>
- <radio-group name="gender">
- <label><radio value="男"/>男</label>
- <label><radio value="女"/>女</label>
- <label><radio value="其他"/>其他</label>
- </radio-group>
- </view>
- <view class="section section_gap">
- <view class="section__title">年龄:</view>
- <slider value="18" name="age" show-value ></slider>
- </view>
- <view class="section section_gap">
- <view class="section__title">擅长的开发语言:</view>
- <checkbox-group name="technology">
- <label><checkbox value="Java"/>Java</label>
- <label><checkbox value="JavaScript"/>JavaScript</label>
- <label><checkbox value="C++"/>C++</label>
- <label><checkbox value="C"/>C</label>
- <label><checkbox value="Object-C"/>Object-C</label>
- <label><checkbox value="C#"/>C#</label>
- <label><checkbox value="Python"/>;Python</label>
- <label><checkbox value="PHP"/>;PHP</label>
- <label><checkbox value="Ruby"/>Ruby</label>
- <label><checkbox value="Swift"/>Swift</label>
- </checkbox-group>
- </view>
- <view class="section section_gap">
- <view class="section__title">是否公开信息:</view>
- <switch name="isPublic"/>
- </view>
- <view class="btn-area">
- <button formType="submit">Submit</button>
- <button formType="reset">Reset</button>
- </view>
- <modal class="modal" hidden="{{modalHidden}}" no-cancel bindconfirm="modalChange">
- <view> 您填写的表单如下 </view>
- <view> 姓名:{{name}} </view>
- <view> 性别:{{gender}} </view>
- <view> 年龄:{{age}} </view>
- <view> 擅长的开发语言:{{technology}} </view>
- <view> 是否公开信息:{{isPublic}} </view>
- </modal>
- </form>
- </view>
下面是JS代码:
- Page({
- data: {
- pickerHidden: true,
- chosen: '',
- modalHidden: true,
- name: '',
- gender: '',
- age: '',
- technology: '',
- isPublic: ''
- },
- formSubmit: function(e) {
- var value = e.detail.value;
- this.setData(
- {
- modalHidden: false,
- name: value.name,
- gender: value.gender,
- age: value.age,
- technology: value.technology,
- isPublic: value.isPublic
- }
- );
- console.log('form发生了submit事件,携带数据为:', e.detail.value)
- },
- formReset: function(e) {
- console.log('form发生了reset事件,携带数据为:', e.detail.value)
- this.setData({
- chosen: ''
- })
- },
- modalChange: function(e) {
- this.setData({
- modalHidden: true
- })
- },
- })
下面是WXSS代码:
- wx-label {
- display: block;
- margin-top: 10rpx;
- margin-left: 15rpx;
- }
- .section__title{
- font-size: 30rpx;
- margin-bottom: 30rpx;
- font-weight: bold;
- }
- .page {
- min-height: 100%;
- flex: 1;
- background-color: #FBF9FE;
- font-size: 32rpx;
- font-family: -apple-system-font,Helvetica Neue,Helvetica,sans-serif;
- overflow: hidden;
- }
- .page__hd{
- padding: 50rpx 50rpx 100rpx 50rpx;
- text-align: center;
- }
- .page__title{
- display: inline-block;
- padding: 20rpx 40rpx;
- font-size: 32rpx;
- color: #AAAAAA;
- border-bottom: 1px solid #CCCCCC;
- }
- .page__desc{
- display: none;
- margin-top: 20rpx;
- font-size: 26rpx;
- color: #BBBBBB;
- }
- .section{
- margin-bottom: 80rpx;
- }
- .section_gap{
- padding: 0 30rpx;
- }
- .section__title{
- margin-bottom: 16rpx;
- padding-left: 30rpx;
- padding-right: 30rpx;
- }
- .section_gap .section__title{
- padding-left: 0;
- padding-right: 0;
- }
- .btn-area{
- padding: 0 30px;
- }
- .btn-area button{
- margin-top: 20rpx;
- margin-bottom: 20rpx;
- }
- .page input{
- padding: 20rpx 30rpx;
- background-color: #fff;
- margin-left: 20rpx;
- }
form表单的主要属性: 属性/类型/说明 report-submit/Boolean/是否返回formId用于发送模板消息 bindsubmit/EventHandle/携带form中的数据触发submit事件,event.detail = {value : {‘name’: ‘value’} , formId: ‘’}