• 小程序动态添加input(一)


    之前在开发过程中遇到这么一个需求,就是在创建模板得时候需要有很多标题,标题是动态添加得,且添加得标题可以删除,最终实现得效果图如下:

    代码部分:

     1 <!--index.wxml-->
     2 <view class="container">
     3   <view class='template_title1 flex-x '>
     4     <view>模板内容</view>
     5   </view>
     6 
     7   <block wx:for="{{conLists}}" wx:key="index">
     8     <view class='template_title_list flex-x'>
     9       <view class="del" bindtap='del' data-index='{{index}}'>-</view>
    10 
    11       <input placeholder='请填写内容标题' bindinput='changeConTitle' data-index='{{index}}'></input>
    12     </view>
    13   </block>
    14 
    15   <view class='template_title flex-x' bindtap='add'>
    16     <view class='add_con flex-x'>
    17       <text>+</text>
    18       <view>添加内容</view>
    19     </view>
    20   </view>
    21 
    22   <button class="btn" type="primary" bindtap="next">下一步</button>
    23 </view>
     1 /**index.wxss**/
     2 
     3 page {
     4   background: #f2f2f2;
     5 }
     6 
     7 .flex-x {
     8   display: flex;
     9   align-items: center;
    10 }
    11 
    12 .template_title, .template_title1, .template_title_list {
    13   height: 90rpx;
    14   background: #fff;
    15   justify-content: space-between;
    16   padding: 0 30rpx;
    17   box-sizing: border-box;
    18 }
    19 
    20 .template_title1 {
    21   background: none;
    22 }
    23 
    24 .template_title_list {
    25   margin-bottom: 4rpx;
    26 }
    27 
    28 .template_title > view, .template_title1 > view {
    29   font-size: 32rpx;
    30   color: #8f8f8f;
    31   flex-shrink: 0;
    32   margin-right: 20rpx;
    33 }
    34 
    35 .template_title > input {
    36   font-size: 28rpx;
    37   color: #808080;
    38   text-align: right;
    39   flex-grow: 1;
    40 }
    41 
    42 /* 添加内容 */
    43 
    44 .add_con > text {
    45   font-size: 40rpx;
    46   color: #f16765;
    47   display: block;
    48   margin-right: 20rpx;
    49   margin-left: 10rpx;
    50   line-height: 44rpx;
    51 }
    52 
    53 .add_con > view {
    54   font-size: 32rpx;
    55   color: #7885cb;
    56 }
    57 
    58 /* 删除内容 */
    59 
    60 .del {
    61   font-size: 32rpx;
    62   color: #f16765;
    63   margin-right: 14rpx;
    64   padding: 20rpx;
    65 }
    66 
    67 input {
    68   flex-grow: 1;
    69   font-size: 28rpx;
    70   color: #808080;
    71 }
    72 
    73 .btn {
    74   margin-top: 100rpx;
    75 }
     1 //index.js
     2 Page({
     3 
     4   /**
     5    * 页面的初始数据
     6    */
     7   data: {
     8     conLists: [], //内容标题(如:今天完成工作、备注、次日工作安排)可以添加或者删除
     9   },
    10 
    11   /**
    12  * 添加内容
    13  */
    14   add(e) {
    15     // 点击添加按钮,就往数组里添加一条空数据
    16     var _list = this.data.conLists;
    17     _list.push("")
    18     this.setData({
    19       conLists: _list
    20     })
    21   },
    22 
    23   /**
    24    * 删除内容
    25    */
    26   del(e) {
    27     var idx = e.currentTarget.dataset.index;
    28     var _list = this.data.conLists;
    29     console.log(idx)
    30     for (let i = 0; i < _list.length; i++) {
    31       if (idx == i) {
    32         _list.splice(idx, 1)
    33       }
    34     }
    35     this.setData({
    36       conLists: _list
    37     })
    38   },
    39 
    40   /**
    41  * 获取输入的内容标题
    42  */
    43   changeConTitle(e) {
    44     var idx = e.currentTarget.dataset.index; //当前下标
    45     var val = e.detail.value; //当前输入的值
    46     var _list = this.data.conLists; //data中存放的数据
    47     for (let i = 0; i < _list.length; i++) {
    48       if (idx == i) {
    49         _list[i] = { modelLabel: val } //将当前输入的值放到数组中对应的位置
    50       }
    51     }
    52     this.setData({
    53       conLists: _list
    54     })
    55   },
    56 
    57   /**
    58  * 下一步
    59  */
    60   next(e) {
    61     var _conLists = this.data.conLists;
    62     console.log('这是模板内容标题数组', _conLists)
    63     for (let i = 0; i < _conLists.length; i++) {
    64       if (!_conLists[i]) {
    65         wx.showToast({
    66           title: '请输入第' + `${i * 1 + 1}` + '条的模板内容标题!',
    67           icon: 'none'
    68         })
    69         return;
    70       }
    71     }
    72   },
    73 
    74 })
  • 相关阅读:
    [转]TeeChart经验总结 5.Axis
    查询
    [转]VS2010安装说明及所有安装出错的解决办法
    [转]游标
    [转]在C#中实现串口通信
    delphi日期的使用
    Http(1)
    表的操作
    存储过程
    CKeditor
  • 原文地址:https://www.cnblogs.com/rzsyztd/p/12531270.html
Copyright © 2020-2023  润新知