微信小程序传值取值的几种方法

一,列表index下的取值

实现方式是:data-index="{{index}}"挖坑及e.currentTarget.dataset.index来填坑即可

1.1生成值

<image src="../../../images/icon_delete.png" /><text>删除</text>
//在删除图标与文字添加data-index="{{index}}"自定义属性以及绑定点击事件bindtap="delete"
<view data-index="{{index}}" bindtap="delete"><image src="../../../images/icon_delete.png" /><text>删除</text></view>

实现delete方法,取index下标值

delete: function (e) {
  var index = parseInt(e.currentTarget.dataset.index);
  console.log("index" + index);
}

如果不使用e.currentTarget而使用e.target会怎样?

将会导致仅点中<view>才能输出index值,点子元素<image>或<text>将输出NaN。

target是事件的真正发生者,currentTarget是注册了事件监听器的对象

1.2取出值

试图从index数据中找出相应元素删除地址

// 找到当前地址AVObject对象
var address = that.data.addressObjects[index];
// 给出确认提示框
wx.showModal({
  title: ‘确认‘,
  content: ‘要删除这个地址吗?‘,
  success: function(res) {
    if (res.confirm) {
      // 真正删除对象
      address.destroy().then(function (success) {
        // 删除成功提示
        wx.showToast({
          title: ‘删除成功‘,
          icon: ‘success‘,
          duration: 2000
        });
        // 重新加载数据
        that.loadData();
      }, function (error) {
 
      });
    }
  }
})

2,页面传值

从收货地址列表页中传地址id到编辑页面,以读取原地址供修改之用。

address/list页面实现以下代码

<view class="container" data-index="{{index}}" bindtap="edit"><image src="../../../images/icon_edit.png" /><text>编辑</text></view>
edit: function (e) {
  var that = this;
  // 取得下标
  var index = parseInt(e.currentTarget.dataset.index);
  // 取出id值
  var objectId = this.data.addressObjects[index].get(‘objectId‘);
  wx.navigateTo({
    url: ‘../add/add?objectId=‘+objectId
  });
},

address/add页面实现onLoad(options)方法,从url路径中获取objectId

onLoad: function (options) {
  var objectId = options.objectId
}

3.form表单取值

3.1 方式一,通过<form bindsubmit="formSubmit">与<button formType="submit">标签配合使用

布局如下:

<form bindsubmit="formSubmit">
  <input name="detail" placeholder="详情地址" />
  <input name="realname" placeholder="收件人姓名" />
  <input name="mobile" placeholder="手机号码" type="number"/>
  <button formType="submit" type="primary">Submit</button>
</form>

js取值:

formSubmit: function(e) {
  // detail
  var detail = e.detail.value.detail;
  // realname
  var realname = e.detail.value.realname;
  // mobile
  var mobile = e.detail.value.mobile;
}

3.2 方式二

通过<input bindconfirm="realnameConfirm">实现

// 实现相应多个**Confirm方式
detailConfirm: function(e) {
  var detail = e.detail.value;
}
realnameConfirm: function(e) {
  var realname = e.detail.value;
}
mobileConfirm: function(e) {
  var mobile = e.detail.value;
}

通过方式一与方式二的对比可以看出,虽然同样都能实现取值的目标,但是它们的使用场景有所不同,前者适合与提交大量表单项时,比如用户完善个人资料,收货地址填写;而后者适合只做一两个表单项时,比如快递单号录入,绑定手机号码。

如果需要类似ajax即时响应的,应该选用后者,因为input能使用<input bindinput="bindInput" />来实现即时取到值,比如商品搜索框输入手机关键字,应出现iPhone7,Mate8等候选词这样的场景。

时间: 2024-08-22 09:43:07

微信小程序传值取值的几种方法的相关文章

微信小程序解析富文本的几种方法

工作中有遇到过在小程序中需要解析后台管理系统设置的富文本内容, 一,可以使用wxParse插件解析html 使用方法 1.在github中下载 下载地址  https://github.com/icindy/wxParse/tree/master/wxParse 但是博住使用后 总是报 VM3004:1 thirdScriptErrorhtml.replace is not a function;at api request success callback function 遍在网上找资料 在

微信小程序传值以及获取值方法

微信小程序传值以及获取值方法,传值有两种方法,对应也有获取值得方法, 1.设置id的方法标识跳转后传递的参数值: 2.通过使用data - xxxx 的方法来标识要传递的值 微信小程序设置id的方法标识来传值 在要跳转的item处,设置一个id并给当前的id赋值上对应的key值,比如一部电影的id(后面带着id去下一个页面查询,详细信息)如: 后我们在js的bindtap的响应事件中获取,并传递到下一个界面中: 获取到id传的值 通过e.currentTarget.id;获取设置的id值,并通过

选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别

一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 var data={ "show_in_list": 1, "enums": [ { "value": "B2B", "key": "1" }, { "value": &

微信小程序访问豆瓣电影api400错误解决方法

最近在跟着demo学习微信小程序,却卡在了第一步请求豆瓣电影api上,折腾了很久,代码如下: wx.request({ url : "https://api.douban.com/v2/movie/in_theaters", data: {}, header:{ "Content-Type":"application/json" }, success: function(res) { console.log(res.data); var data

微信小程序中获取高度及设备的方法

由于js中可以采用操纵dom的方法来获取页面元素的高度,可是在微信小程序中不能操纵dom,经过查找之后发现仅仅只有以下几个方法可以获取到高度 wx.getSystemInfoSync().windowWidth // 获取当前窗口的宽度 wx.getSystemInfoSync().windowHeight // 获取当前窗口的高度 wx.getSystemInfoSync().model // 获取当前采用的设备 wx.getSystemInfoSync().pixelRatio wx.get

分享为小程序添加自动回复消息的5种方法!自动客服功能的微信小程序

如何通过小程序客服消息引导自动关注公众号? 小程序客服自动回复一个图文链接? 小程序客服可以发小程序卡片吗? 小程序客服能像公众号一样设置关键词回复吗? 收到消息时自动回复? 微信小程序新手如何默认自动回复功能 如果你遇到以上问题,请往下看!教大家实现微信小程序客服自动回复消息功能,以帮助我们更好地与客户进行互动. 当我们的小程序接入客服,在小程序前端增加一个客服按钮,用户可以点击按钮主动和我们的客服互动! 但是有个问题,消息那么多,如何才能接待的过来,能否想微信公众号一样自动回复,关键词回复,

微信小程序获取自定义属性值

写小程序的时候用到了自定义属性,特地来记录一下 特别是这个坑,必须得说一说 wxml <view class='box' bindtap='getValue'> <view class='first' data-num="1024" data-name="张三">第一个view</view> <view class='second' data-age="2017" data-con="李四&qu

微信小程序 - 获取用户信息的几种方式

1. 老接口(上线使用-测试用button先获取用户信息) 1 // 登录 2 wx.login({ 3 success: res => { 4 // 发送 res.code 到后台换取 openId, sessionKey, unionId 5 // 也就是发送到后端,后端通过接口发送到前端,前端接收用户信息等.... 6 wx.setStorageSync('code', res.code); 7 console.log(wx.getStorageSync('code')) 8 9 // 获

小程序弹窗阻止滑动的两种方法

弹出 fixed 弹窗后,在弹窗上滑动会导致下层的页面一起跟着滚动. 场景1:弹窗内无滚动内容 可以在弹窗最外层元素绑定touchmove事件,触发事件返回false即(在vue类框架中也可以加.stop阻止冒泡). 简单写法:catchtouchmove='true' 此种方式会阻止弹窗内内容的滚动. 场景二:弹窗内有滚动内容 在弹窗外层根元素动态添加一个no-scroll样式,定义no-scroll为{height: 100%; overflow: hidden;} 当需要阻止滑动的弹窗显示