微信小程序之一:动态添加view(view包含picker,input)
 <view  wx:for="{{array}}"  wx:key="this" class="borderContainer">
   <view class="borderContainer1">
     <view class="firstBorder">
       <view class="firstBorderInput">
       <input maxlength="6" bindinput="persionInput{{index}}" wx:if="{{index==0}}" class="textArea" value="{{persionName0}}"></input>
         <input maxlength="6" bindinput="persionInput{{index}}" wx:if="{{index==1}}" class="textArea" value="{{persionName1}}"></input>
         <input maxlength="6" bindinput="persionInput{{index}}" wx:if="{{index==2}}" class="textArea" value="{{persionName2}}"></input>
         <input maxlength="6" bindinput="persionInput{{index}}" wx:if="{{index==3}}" class="textArea" value="{{persionName3}}"></input>
       </view>
       <view class="line" ></view>
       <view class="rightImageBorder">
         <picker bindchange="bottomdowm{{index}}" data-value="{{pickArray[index]}}" data-index="{{index}}" value="{{index}}" range="{{pickArray}}" class="pickBorder">
           <image src="/pages/me/houseOperation/creatFamily/image/button_down.png" class="rightImage"></image>
         </picker>
       </view>
     </view>
   </view>
   <view class="rightBorder">
     <input type="number" bindinput="persiontelInput{{index}}" placeholder="请输入成员号码" maxlength="11" class="cyinputtel"></input>
   </view>
 </view>
.borderContainer {
  height: 10vw;
}
.borderContainer1 {
  float: left;
  padding-left: 4.5vw;
}
.firstBorder {
  line-height: 7.2vw;
  border: 2rpx solid #a0a0a0;
  border-radius: 10rpx;
  display: flex;
  align-items: center;
  width: 35vw;
}
.firstBorderInput {
  display: black;
  width: 45%;
  line-height: 5vw;
}
.line {
  width: 1%;
  height: 6.2vw;
  border-right: 1px solid #a0a0a0;
  margin-top: 1vw;
  margin-bottom: 1vw;
}
.rightImageBorder {
  width: 54%;
  display: flex;
  align-items: center;
  position: relative;
}
.pickBorder {
  padding-bottom: 4.3vw;
}
.rightImage{
 height:4.2vw;width:4.2vw; position: absolute;right:41%;
}
.rightBorder{
  display:inline-block;margin:0 1vw;width:40vw;height: 8.2vw;line-height: 8.2vw;border-radius:8rpx;border:2rpx solid #A0A0A0;
}
.meber_add_off_Image{
  width: 52rpx;height: 45rpx;margin:0 2vw;
}
Page({
  /**
   * 页面的初始数据
   */
  data: {
    persionNameResult: [],
    persionTelResult: [],
    //成员名称
    persionName0: '',
    persionName1: '',
    //成员号码
    persiontel0: '',
    persiontel1: '',
    nowIdx: -1,
    array: [{
      member: '',
      memberPhone: ''
    }],
    pickArray: [
      '爸爸',
      '妈妈',
      '老婆',
      '儿子',
      '女儿',
    ],
}
//动态添加view
  addItem: function(e) {
    var that = this;
    let array = {
      member: '',
      memberPhone: ''
    };
    var page = that.data.page;
    if (page < 4) {
      that.setData({
        array: that.data.array.concat(array),
        page: that.data.page + 1,
      });
    } else {
      wx.showToast({
        title: '掌上管家:最多添加四个',
        icon: 'none'
      });
      return false;
    }
  },
  persionInput0: function(e) {
    this.setData({
      persionName0: e.detail.value
    })
  },
  persionInput1: function(e) {
    this.setData({
      persionName1: e.detail.value
    })
  },
  persiontelInput0: function(e) {
    this.setData({
      persiontel0: e.detail.value
    })
  },
  persiontelInput1: function(e) {
    this.setData({
      persiontel1: e.detail.value
    })
  },
formSubmit() {
    var that = this;
    var persionName0 = that.data.persionName0;
    var persionName1 = that.data.persionName1;
    var persiontel0 = that.data.persiontel0;
    var persiontel1 = that.data.persiontel1;
    if (persiontel0 == '' || persiontel1 == '') {}
    if (persiontel0 != '' && persionName0 == '') {
      wx.showToast({
        title: '掌上管家:请输入成员名称',
        icon: 'none'
      })
      return false;
    }
    if (persiontel0 == '' && persionName0 != '') {
      wx.showToast({
        title: '掌上管家:请输入成员号码',
        icon: 'none'
      })
      return false;
    }
    if (persiontel0 != '' && !(/^1[34578]\d{9}$/.test(persiontel0))) {
      wx.showToast({
        title: '掌上管家:请输入正确的成员号码',
        icon: "none",
        mask: true,
        duration: 2000
      })
    }
    if (persiontel1 != '' && persionName1 == '') {
      wx.showToast({
        title: '掌上管家:请输入成员名称',
        icon: 'none'
      })
      return false;
    }
    if (persiontel1 == '' && persionName1 != '') {
      wx.showToast({
        title: '掌上管家:请输入成员号码',
        icon: 'none'
      })
      return false;
    }
    if (persiontel1 != '' && !(/^1[34578]\d{9}$/.test(persiontel1))) {
      wx.showToast({
        title: '掌上管家:请输入正确的成员号码',
        icon: "none",
        mask: true,
        duration: 2000
      })
    }
    var persionNameResult = that.data.persionNameResult;
    persionNameResult.push(persionName0);
    persionNameResult.push(persionName1);
    //console.log(persionNameResult);
    for (var i = 0; i < persionNameResult.length; i++) {
      if (persionNameResult[i] == "" || typeof(persionNameResult[i]) == "undefined") {
        persionNameResult.splice(i, 1);
        i = i - 1;
      }
    }
    var tjpersionName = persionNameResult.join(",");
    //*********************************************** */
    var persionTelResult = that.data.persionTelResult;
    persionTelResult.push(persiontel0);
    persionTelResult.push(persiontel1);
    for (var i = 0; i < persionTelResult.length; i++) {
      if (persionTelResult[i] == "" || typeof(persionTelResult[i]) == "undefined") {
        persionTelResult.splice(i, 1);
        i = i - 1;
      }
    }
    var tjpersionTel = persionTelResult.join(",");
    wx.request({
      url: app.globalData.address + 'url',
      header: {
        // 'content-type': 'application/json;charset=utf-8'
        'content-type': 'application/x-www-form-urlencoded'
      },
      data: {
        //手机号码
        usersArray: tjpersionTel
        //昵称
        nickNamesArray: tjpersionName
      },
      method: "POST",
      success: function(res) {
        console.log(res.data);
        if (res.data.errCode == 1000) {
          wx.showToast({
            title: '创建成功',
            icon: 'none'
          });
          setTimeout(function() {
            wx.navigateTo({
              url: 'url?homeId=' + res.data.homeId
            })
          }, 1000)
        } else {
          wx.showToast({
            title: '创建失败',
            icon: 'loading',
            duration: 1200
          })
        }
      },
      fail: function() {
        wx.showToast({
          title: '服务器网络错误!',
          icon: 'loading',
          duration: 1500
        })
      }
    })
  },
})
  persionInput0: function(e) {
     this.setData({
       persionName0: e.detail.value
     })
   },
   persionInput1: function(e) {
     this.setData({
       persionName1: e.detail.value
     })
   },
   persionInput2: function(e) {
     this.setData({
       persionName2: e.detail.value
     })
   },
 bottomdowm: function (e) {
     var nowData = this.data.pickArray;
     var nowIdx = e.detail.value;
     var nowindex = nowData[nowIdx];
     this.setData({
       persionName: nowindex
     })
   },
   bottomdowm0: function(e) {
     var nowData = this.data.pickArray;
     var nowIdx = e.detail.value;
     var nowindex = nowData[nowIdx];
     this.setData({
       persionName0: nowindex,
     })
   },
   bottomdowm1: function(e) {
     var nowData = this.data.pickArray;
     var nowIdx = e.detail.value;
     var nowindex = nowData[nowIdx];
     this.setData({
       persionName1: nowindex
     })
   },
这里所做的就是通过array动态添加view的功能,在为每个动态的picker以及input操作中,都是通过提取array的index操作来为其目标项添加值得操作,虽然这里动态添加的项不是很多,但是多个的话难免有点代码冗余。本人开发小程序不久,如有更好的思路以及做法请在下方留言,一起学习,虽然问题简单,但能够解决问题也是一件很非凡的事!!
微信小程序之一:动态添加view(view包含picker,input)的更多相关文章
- 微信小程序之动态添加、删除指定内容(view)和获取input值
		
这次遇到个问题: 1. 动态的添加指定的view内容..嗯..很简单..wx:for就搞定 2. 动态添加的内容中有input,最终获取值的时候,要获取到所有input的值并且是一个数组..嗯.. 3 ...
 - 微信小程序把玩(八)view组件
		
原文:微信小程序把玩(八)view组件 刚看到这个效果的时候还真是和ReactNative的效果一致,属性也基本的一样. view这个组件就是一个视图组件使用起来非常简单. 主要属性: flex-di ...
 - 微信小程序之动态获取元素宽高
		
我以前一直以为微信小程序不能动态获取view元素的宽高.但是自从看到: wx.createSelectorQuery() 这个api接口,以前的某些问题就能得到解决了... 那么,这个api接口怎么用 ...
 - 关于微信小程序的动态跳转
		
最近在研究微信小程序.在做一个简单的购物小程序时,遇到一个问题:如何通过扫码实现动态的跳转页面功能, 通过研究终于找到了解决方法: 首先当然要实现扫码解析功能js的代码: click: functio ...
 - 微信小程序 JS动态修改样式
		
微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...
 - 微信小程序如何动态增删class类名
		
简述 由于微信小程序开发不同于以往的普通web开发, 因此无法通过js获取wxml文件的dom结构, 因此从js上直接添加一个类名应该不可能了. 可是我们可以通过微信小程序数据绑定以及view标签的& ...
 - 微信小程序如何动态增删class类名达到切换tabel栏的效果
		
微信小程序和vue还是有点差别的,要想实现通过动态切换class来达到切换css的效果,请看代码: //wxml页面: <view class="tab"> <v ...
 - 如何实现微信小程序动画?添加到我的小程序动画实现详细讲解,轻松学会动画开发!附壁纸小程序源码下载链接
		
为了让用户能尽可能多地使用小程序,也算是沉淀用户,现在很多小程序中,都有引导用户"添加到我的小程序"的操作提示,而且大多都是有动画效果.在高清壁纸推荐小程序首页,用户每次进入,都会 ...
 - 微信小程序--地图上添加图片
		
如何在微信小程序地图添加上,添加图片? 在微信小程序中,地图的层级最高,所以我们没有办法,通过定位,在地图上添加图片等信息; 处理办法: 添加控件:controls; 其中有个属性position,进 ...
 - 【微信小程序】动态设置图片大小
		
我们都知道微信小程序的组件image是用来显示图片的,它有一下几个属性:1.src 图片资源地址2.mode 图片裁剪.缩放的模式3.binderror ...
 
随机推荐
- (25)打鸡儿教你Vue.js
			
vue-cli // 全局安装 vue-cli npm install --global vue-cli // 创建一个基于 webpack 模板的新项目 vue init webpack my-pr ...
 - 《挑战30天C++入门极限》C++的iostream标准库介绍(3)
			
C++的iostream标准库介绍(3) C语言提供了格式化输入输出的方法,C++也同样,但是C++的控制符使用起来更为简单方便,在c++下有两中方法控制格式化输入输出. 1.有流对象的成员函 ...
 - coturn编译运行在Windows平台
			
turn 编译安装到Windows平台 https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html#windo ...
 - leetcode 467. 环绕字符串中唯一的子字符串
			
题目描述: 把字符串 s 看作是“abcdefghijklmnopqrstuvwxyz”的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwx ...
 - Spark(二)—— 标签计算、用户画像应用
			
一.标签计算 数据 86913510 {"reviewPics":[],"extInfoList":null,"expenseList":n ...
 - Oracle备份的几种方式
			
这里使用Oracle 12C来大概演示说明一下rman的基本用法,这里不会深入讨论,因为本人也只是刚刚才接触,只是结合了网上的一些文章以及自己的实践来总结并拿出来大家学习,谢谢 目录 一.关于备份与恢 ...
 - CMU Database Systems - Indexes
			
这章主要描述索引,即通过什么样的数据结构可以更加快速的查询到数据 介绍Hash Tables,B+tree,SkipList 以及索引的并行访问 Hash Tables hash tables可以实现 ...
 - futex的设计与实现
			
介绍 futex(快速用户空间互斥)是Linux的一个基础组件,可以用来构建各种更高级别的同步机制,比如锁或者信号量等等,POSIX信号量就是基于futex构建的.大多数时候编写应用程序并不需要直接使 ...
 - IFC构件位置数据与revit模型中对应构件位置数据对比
			
IFC构件位置数据与revit模型中对应构件位置数据对比
 - 解决 Win10 系统新建文件夹后需手动刷新才能显示
			
摘自:https://blog.csdn.net/weixin_44447687/article/details/100702968 1.点击开始菜单,选择“运行”功能,然后在运行打开框中输入 reg ...