Form表单类组件与Map地图组件

笔记内容:Form表单类组件与Map地图组件
笔记日期:2018-02-04


form之switch组件

switch组件是一个开关选择器,wxml示例代码如下:

<view class=‘container‘>
  <view class=‘switch_text‘>switch</view>
  <switch name=‘switch1‘ checked=‘true‘ />
  <switch name=‘switch2‘ />
  <switch name=‘switch3‘ checked=‘true‘ color=‘red‘ />
</view>

说明:

  • name属性设置该switch组件的名称
  • checked属性设置该switch组件是否为选中状态,true为选中,false为不选中,不设置该属性的话默认为false
  • color属性设置该switch组件的颜色

样式代码如下:

.container{
  text-align: center;
}
.switch_text{
  color: #d1d1d1;
  margin-bottom: 10rpx;
}
.container switch{
  margin-bottom: 20rpx;
}

运行效果:

switch组件里有一个bindchange事件,通过该事件我们可以获得该组件的状态值,wxml代码如下:

<switch name=‘switch4‘ bindchange=‘onBindChange‘ />

js代码如下:

onBindChange:function(event){
    console.log(event.detail.value);
}

打印结果:

true
false

switch组件的官方说明文档如下:

https://mp.weixin.qq.com/debug/wxadoc/dev/component/switch.html


form之slider组件

slider组件是一个滑动选择器,也就是滑动条,wxml示例代码如下:

<view>
  <view class=‘title‘>slider</view>
  <slider min=‘0‘ max=‘500‘ step=‘100‘ name=‘slider‘ value=‘100‘ show-value=‘true‘></slider>
</view>

说明:

  • min属性设置该slider组件的最小值
  • max属性设置该slider组件的最大值
  • step属性 设置该slider组件的步长,也就是每拖动一次就递增多少个数值。以上设置的是100,那么每拖动一次就会递增100
  • value属性设置该slider组件默认选中的值
  • show-value属性显示该slider组件当前被选中的值

样式代码如下:

.title{
  color: #d1d1d1;
  margin-bottom: 10rpx;
  margin-left: 20rpx;
}

运行效果:

slider组件的官方说明文档如下:

https://mp.weixin.qq.com/debug/wxadoc/dev/component/slider.html


form之radio-group组件

radio-group是单项选择器,也就是单选框,而其内部由多个&lt;radio/&gt;单选项目组成,示例代码如下:

<view>
  <view class=‘title‘>radio</view>
  <view class=‘radio_view‘>
    <radio-group name=‘radio-group‘ bindchange=‘onRadioChange‘>
      <label>
        <radio value=‘漓江塔‘ checked=‘true‘>漓江塔</radio>
      </label>
      <label>
        <radio value=‘努巴尼‘>努巴尼</radio>
      </label>
      <label>
        <radio value=‘尼泊尔‘ disabled=‘true‘>尼泊尔</radio>
      </label>
    </radio-group>
  </view>
</view>

说明:

  • disabled属性设置该radio组件为禁用状态

样式代码如下:

.title {
  color: #d1d1d1;
  margin-bottom: 10rpx;
  margin-left: 20rpx;
}

.radio_view {
  margin-left: 20rpx;
  color: #666;
}

.radio_view label {
  margin-left: 20rpx;
  margin-right: 20rpx;
}

js代码如下:

  onRadioChange: function (event) {
    console.log(event.detail.value);
  }

运行效果:

radio组件的官方说明文档如下:

https://mp.weixin.qq.com/debug/wxadoc/dev/component/radio.html


form之checkbox-group组件

checkbox-group是多项选择器,也就是多选框,其内部由多个checkbox组成,示例代码如下:

<view>
  <view class=‘title‘>checkbox</view>
  <view class=‘checkbox_view‘>
    <checkbox-group name=‘checkbox-group‘ bindchange=‘onCheckboxChange‘>
      <label>
        <checkbox value=‘漓江塔‘ checked=‘true‘>漓江塔</checkbox>
      </label>
      <label>
        <checkbox value=‘努巴尼‘>努巴尼</checkbox>
      </label>
      <label>
        <checkbox value=‘尼泊尔‘ disabled=‘true‘>尼泊尔</checkbox>
      </label>
    </checkbox-group>
  </view>
</view>

样式代码如下:

.title {
  color: #d1d1d1;
  margin-bottom: 10rpx;
  margin-left: 20rpx;
}

.checkbox_view {
  margin-left: 20rpx;
  color: #666;
}

.checkbox_view label {
  margin-left: 20rpx;
  margin-right: 20rpx;
}

js代码如下:

  onCheckboxChange: function (event) {
    console.log(event.detail.value);
  }

运行效果:

然后选择多个:

控制台打印出来的是一个数组:

checkbox组件的官方说明文档如下:

https://mp.weixin.qq.com/debug/wxadoc/dev/component/checkbox.html


form表单提交

熟悉web前端开发的小伙伴应该对表单提交都不陌生,表单提交就是把表单组件中的数据都收集起来,然后向服务器进行提交。小程序中也有form组件,它是通过触发事件来进行数据的提交的,小程序的表单提交比web中的表单提交更为简单一些,wxml代码示例:

<view class=‘page‘>
  <view class=‘page_hd‘>
    <text class=‘page_title‘>form</text>
    <text class=‘page_desc‘>表单</text>
  </view>

  <form bindsubmit="formSubmit" bindreset="formReset">

    <view class="section section_gap">
      <view class="section__title">switch</view>
      <switch name="switch" />
    </view>

    <view class="section section_gap">
      <view class="section__title">slider</view>
      <slider name="slider" show-value min=‘0‘ max=‘100‘ value=‘50‘></slider>
    </view>

    <view class="section">
      <view class="section__title">input</view>
    </view>
    <input name="input" placeholder="please input here" />

    <view class="section section_gap">
      <view class="section__title">radio</view>
      <radio-group name="radio-group">
        <label>
          <radio value="漓江塔" />漓江塔</label>
        <label>
          <radio value="努巴尼" />努巴尼</label>
        <label>
          <radio value="尼泊尔" />尼泊尔</label>
      </radio-group>
    </view>

    <view class="section section_gap">
      <view class="section__title">checkbox</view>
      <checkbox-group name="checkbox">
        <label>
          <checkbox value="西湖醋鱼" />西湖醋鱼</label>
        <label>
          <checkbox value="糖醋排骨" />糖醋排骨</label>
        <label>
          <checkbox value="松鼠桂鱼" />松鼠桂鱼</label>
        <label>
          <checkbox value="酒酿丸子" />酒酿丸子</label>
        <label>
          <checkbox value="鱼香肉丝" />鱼香肉丝</label>
      </checkbox-group>
    </view>

    <view class="btn-area">
      <button formType="submit">Submit</button>
      <button formType="reset">Reset</button>
    </view>

  </form>
</view>

样式代码示例:

.page {
  display: flex;
  flex-direction: column;
  background-color: #fbfbfb;
}

.page_hd {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 50rpx;
  margin-top: 50rpx;
}

.page_title {
  font-size: 25rpx;
  color: #d1d1d1;
}

.page_desc {
  text-align: center;
  font-size: 30rpx;
  width: 200rpx;
  color: #d1d1d1;
  border-bottom: 1px solid #d1d1d1;
  padding-bottom: 20rpx;
}

.section__title {
  margin-bottom: 20rpx;
  font-size: 32rpx;
}

.section {
  font-size: 30rpx;
  color: #666;
  padding-left: 30rpx;
  padding-right: 30rpx;
}

.page input {
  width: 100%;
  height: 80rpx;
  font-size: 25rpx;
  background-color: white;
  padding-left: 30rpx;
}

.section_gap {
  margin-top: 60rpx;
  margin-bottom: 60rpx;
}

label {
  display: flex;
  flex-direction: row;
  margin-bottom: 10rpx;
}

.btn-area button {
  width: 620rpx;
  margin-bottom: 30rpx;
}

js代码示例:

Page({

  formSubmit: function (event) {
    console.log(‘form发生了submit事件,携带数据为:‘, event.detail.value);
  },

  formReset: function (event) {
    console.log(‘form发生了reset事件‘);
  },

})

运行效果:

填写一些数据,然后点击Submit按钮进行表单的提交:

控制台打印的数据如下:

form表单组件的官方说明文档如下:

https://mp.weixin.qq.com/debug/wxadoc/dev/component/form.html


map组件

map组件是用来实现地图功能的,wxml示例代码:

<map id="map" longitude="113.324520" latitude="23.099994" scale="14" markers="{{markers}}" bindmarkertap="markertap" polyline="{{polyline}}" style="width: 100%; height: 300px;"></map>

说明:

  • longitude属性用于设置中心经度
  • latitude属性则用于设置中心维度
  • scale属性用于设置地图的缩放级别,取值范围为5-18,也就是我们在手机上能够双指放大缩小的级别
  • markers属性用于设置地图的mark点信息,也就是定位时的那个表示位置或者用于标记位置的图标
  • bindmarkertap表示点击mark点时会触发的事件
  • polyline属性用于设置地图的mark点路线信息

js代码如下:

Page({
  // 初始化一些数据
  data: {
    // mark点信息
    markers: [{
      iconPath: "/images/mark.png",  // mark点的图标路径
      id: 0,
      latitude: 23.099994,
      longitude: 113.324520,
      width: 50,
      height: 50
    }],

    // mark点路线信息
    polyline: [{
      points: [{
        longitude: 113.3245211,
        latitude: 23.10229
      }, {
        longitude: 113.324520,
        latitude: 23.21229
      }],
      color: "#FF0000DD",
      width: 3,
      dottedLine: true
    }],
  },

  markertap: function (event) {
    // 调用微信的内置地图
    wx.openLocation({
      latitude: 23.10229,
      longitude: 113.3245211,
    })
  },
})

运行效果:

点击地图的mark图标触发事件后会进入微信的内置地图:

注:map组件的一些功能在模拟器上不能完全显示出来,所以研究该组件的时候,最好使用真机来调试。

map组件的官方说明文档如下:

https://mp.weixin.qq.com/debug/wxadoc/dev/component/map.html

原文地址:http://blog.51cto.com/zero01/2068721

时间: 2024-10-10 01:47:33

Form表单类组件与Map地图组件的相关文章

form表单类标签汇总

<form action="form_action.asp" method="get"> First name: <input type="text" id="fname" name="fname" placeholder="Bill"> password: <input type="password" name="lname&

[js开源组件开发]query组件,获取url参数和form表单json格式

query组件,获取url参数和form表单json格式 距离上次的组件[js开源组件开发]ajax分页组件一转眼过去了近二十天,或许我一周一组件的承诺有了质疑声,但其实我一直在做,只是没人看到……,最近项目紧,几个小组,只有我一个前端,公司对前端的定位不清晰,导致前端人员过少的情况.所以还得促进公司前端人员增长,不然再这么玩下去,我要被玩死了,一个公司,不可能靠一个资深前端来支撑二三十个开发的需求,这是不现实的,特别是现在的页面不再是复制粘贴的前况下.我默默耕芸,所以这次我整理了这一个月里所有

Django--分页器(paginator)、Django的用户认证、Django的FORM表单

分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Paginator(objects, 2) >>> p.count #数据总数 4 >>> p.num_pages #总页数 2 >>> type(p.page

python django Form表单

Django 拥有自己独立的表单功能块,可以完成: 1.表单的定义 2.表单的校验 3.表单的前端样式 等功能,方便我们开发,那么接下来,我们看一下表单的定义 首先我们确定我们要编写的功能,一个提供给博客的访客发送自己的联系方式的功能.并且搭建相对应的数据库 1 from django.db import models 2 3 class Connection(models.Model): 4 con_name = models.CharField(max_length = 32,verbose

django系列9--django中的组件(form表单)

一.Form介绍 普通方式注册功能实现 views.py # 注册 def register(request): error_msg = "" if request.method == "POST": username = request.POST.get("name") pwd = request.POST.get("pwd") # 对注册信息做校验 if len(username) < 6: # 用户长度小于6位 e

微信小程序组件解读和分析:九、form表单

form表单组件说明: 表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <picker/> 提交. 当点击 <form/> 表单中 formType 为 submit 的<button/> 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key. form表单组件用法: 重置:<butt

deirective写form表单组件

directive 在使用隔离 scope 的时候,提供了三种方法同隔离之外的地方交互.这三种分别是 @ 绑定一个局部 scope 属性到当前 dom 节点的属性值.结果总是一个字符串,因为 dom 属性是字符串.& 提供一种方式执行一个表达式在父 scope 的上下文中.如果没有指定 attr 名称,则属性名称为相同的本地名称.= 通过 directive 的 attr 属性的值在局部 scope 的属性和父 scope 属性名之间建立双向绑定 但是当我们不使用隔离scope的时候,我们要能够

实现一个兼容eleUI form表单的多选组件

本质上是实现了一个eleUI select组件中的创建条目功能的组件,仅仅是将dropdown的选择框变成了label形式.支持eleUI的form表单校验,同时组件也提供了组件内自定义校验的方法.常规的用eleUI校验表单只需要在rules中正常定义: rules: FormRules = { labels: [ { required: true, type: 'array', message: '请选择标签', trigger: 'change' }, { required: true, t

ANDROID使用MULTIPARTENTITYBUILDER实现类似FORM表单提交方式的文件上传

最近在做 Android 端文件上传,要求采用 form 表单的方式提交,项目使用的 afinal 框架有文件上传功能,但是始终无法与php写的服务端对接上,无法上传成功.读源码发现:afinal 使用了某大神写的 MultipartEntity.java 生成 form 表单内容,然而生成的内容格式不够标准,而且还存在诸多问题,如:首先将所有文件读入到内存,再生成字节流写入到 socket.那么问题来了:如果是几百MB的文件怎么办? 几番搜索,受到 这篇文章(已被我转载,但是示例代码已过期)的