打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
微信小程序官方组件展示之表单组件form源码

以下将展示微信小程序之表单组件form源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。

功能描述:

表单。将组件内的用户输入的switch input checkbox slider radio picker 提交。

当点击 form 表单中 form-type 为 submit 的 button 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key。

属性说明:

示例代码:

JAVASCRIPT

PPage({

  onShareAppMessage() {

    return {

      title: 'form',

      path: 'page/component/pages/form/form'

    }

  },

  data: {

    pickerHidden: true,

    chosen: ''

  },

  pickerConfirm(e) {

    this.setData({

      pickerHidden: true

    })

    this.setData({

      chosen: e.detail.value

    })

  },

  pickerCancel() {

    this.setData({

      pickerHidden: true

    })

  },

  pickerShow() {

    this.setData({

      pickerHidden: false

    })

  },

  formSubmit(e) {

    console.log('form发生了submit事件,携带数据为:', e.detail.value)

  },

  formReset(e) {

    console.log('form发生了reset事件,携带数据为:', e.detail.value)

    this.setData({

      chosen: ''

    })

  }

})

WXML

<view class="container">

  <view class="page-body">

    <form catchsubmit="formSubmit" catchreset="formReset">

      <view class="page-section page-section-gap">

        <view class="page-section-title">switch</view>

        <switch name="switch"/>

      </view>

      <view class="page-section page-section-gap">

        <view class="page-section-title">radio</view>

        <radio-group name="radio">

          <label><radio value="radio1"/>选项一</label>

          <label><radio value="radio2"/>选项二</label>

        </radio-group>

      </view>

      <view class="page-section page-section-gap">

        <view class="page-section-title">checkbox</view>

        <checkbox-group name="checkbox">

          <label><checkbox value="checkbox1"/>选项一</label>

          <label><checkbox value="checkbox2"/>选项二</label>

        </checkbox-group>

      </view>

      <view class="page-section page-section-gap">

        <view class="page-section-title">slider</view>

        <slider value="50" name="slider" show-value ></slider>

      </view>

      <view class="page-section">

        <view class="page-section-title">input</view>

        <view class="weui-cells weui-cells_after-title">

          <view class="weui-cell weui-cell_input">

            <view class="weui-cell__bd" style="margin: 30rpx 0" >

              <input class="weui-input" name="input" placeholder="这是一个输入框" />

            </view>

          </view>

        </view>

      </view>

      <view class="btn-area">

        <button style="margin: 30rpx 0" type="primary" formType="submit">Submit</button>

        <button style="margin: 30rpx 0" formType="reset">Reset</button>

      </view>

    </form>

  </view>

</view>

使用内置 behaviors

对于 form 组件,目前可以自动识别下列内置 behaviors:

wx://form-field

wx://form-field-group

wx://form-field-button

wx://form-field

使自定义组件有类似于表单控件的行为。 form 组件可以识别这些自定义组件,并在 submit 事件中返回组件的字段名及其对应字段值。这将为它添加以下两个属性。

代码示例:

// custom-form-field.js

Component({

 behaviors: ['wx://form-field'],

 data: {

   value: ''

 },

 methods: {

   onChange: function (e) {

     this.setData({

       value: e.detail.value,

     })

   }

 }

})

wx://form-field-group

从基础库版本 2.10.2 开始提供支持。

使 form 组件可以识别到这个自定义组件内部的所有表单控件。 例如,页面的结构如下:

<form bindsubmit="submit">

  <custom-comp></custom-comp>

  <button form-type="submit">submit</button>

</form>

组件 custom-comp 自身结构如下:

<input name="name" />

<switch name="student" />

如果组件 custom-comp 配置有:

Component({

 behaviors: ['wx://form-field-group']

})

此时,表单的 submit 事件的 value 中将包含 name 和 student 两个字段。

wx://form-field-button

从基础库版本 2.10.3 开始提供支持。

使 form 组件可以识别到这个自定义组件内部的 button , 如果自定义组件内部有设置了 form-type 的 button ,它将被组件外的 form 接受。 例如,页面的结构如下:

<form bindsubmit="submit">

  <input name="name" placeholder="请输入名字"></input>

  <custom-comp></custom-comp>

</form>

组件 custom-comp 自身结构如下:

<button form-type="submit">submit</button>

如果组件 custom-comp 配置有:

Component({

 behaviors: ['wx://form-field-button']

})

此时点击组件内的 button ,将触发 form 的submit 事件。

版权声明: 本站所有内容均由互联网收集整理、上传,如涉及版权问题,请联系我们第一时间处理。

原文链接地址:https://developers.weixin.qq.com/miniprogram/dev/component/form.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
微信小程序六(数据请求 表单的创建 提交 与接收)
Layui提交表单时验证必选的多选框是否有选中
回车键敲在文本框里来提交表单的实现
使用Spring MVC表单标签
uniapp组件-uni-forms
从零开始学Reflex框架:打造自己的全栈应用!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服