• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序-动态添加、删除指定View

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、实现效果:

 二、实现代码:

1).wxml页面:

  • 循环的addPrice是一个数组;
  • 需要保存数组的下标和字段名称;
   <view class="price-detail" wx:for="{{addPrice}}" wx:key="">
      <view class="price-detail-descp">
        <image src="{{hosts}}/images/jianhao.png" class="jianhao" data-index="{{index}}" bindtap='deletePrice'></image>
        <view class="descp-text" >费用描述</view>
        <view class="descp-value">
          <input type="text" name="Price_Name" class="desc-input"  data-index="{{index}}" data-tag="Price_Name" bindblur='setInputValue' placeholder='请输入费用描述' value=""/>
        </view>
      </view>
      <view class="price-detail-num">
        <view class="descp-text">人数限制</view>
        <view class="descp-value">
          <input type="text" name="NumLimit" class="desc-input"  placeholder='请输入人数' data-tag="NumLimit" data-index="{{index}}" bindblur='setInputValue' value=""/>
        </view>
      </view>
      <view class="price-detail-value">
        <view class="descp-text">人均金额</view>
        <view class="descp-value">
          <input type="text" name="Price" class="desc-input" style="color:#888888;" placeholder='限50000元' data-tag="Price" data-index="{{index}}" bindblur='setInputValue' value=""/>
        </view>
      </view>
    </view>
    <view class="addButton" data-index="{{index}}" bindtap='addNewPrice'>+新增收费项目</view>

2).js页面

  • 获取下标
  • 获取要修改的字段名
  • 重新赋值
  • concat() 方法:用于连接两个或多个数组。
data:{
//初始化数组
 addPrice: [{
      Price_Name: "",
      NumLimit: "",
      Price: ""
    }],
}

/**新增** */
  addNewPrice: function() {
    let newArray = {
      Price_Name: "",
      NumLimit: "",
      Price: ""
    }
    this.setData({
      addPrice: this.data.addPrice.concat(newArray)
    })
},

/****删除*/
  deletePrice: function(e) {
    let that = this
    let index = e.target.dataset.index //数组下标
    let arrayLength = that.data.addPrice.length //数组长度
    let newArray = []
    if (arrayLength > 1) {
      //数组长度>1 才能删除
      for (let i = 0; i < arrayLength; i++) {
        if (i !== index) {
          newArray.push(that.data.addPrice[i])
        }
      }
      that.setData({
        addPrice: newArray
      })
    } else {
      wx.showToast({
        icon: 'none',
        title: '必须设置一个收费项目',
      })
    }
  },


/**获取输入框信息**/
  setInputValue: function(e) {
    let index = e.target.dataset.index //数组下标
    let tag = e.target.dataset.tag  //字段名称
    let array = this.data.addPrice;
    array[index][tag] = e.detail.value  //赋值
    this.setData({
      addPrice: array
    })
  },

3)保存的数据格式


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Excel _VBA入门之第一个小程序发布时间:2022-07-18
下一篇:
小程序架构设计(一)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap