微信小程序写一个商品选择页面并将选择的内容以文本返回
时间: 2023-12-19 15:07:39 浏览: 30
好的,下面是一个简单的微信小程序商品选择页面的示例代码:
```html
<view class="container">
<view class="title">请选择商品</view>
<view class="list">
<view class="item" wx:for="{{products}}" wx:key="id" bindtap="selectProduct">
<image class="image" src="{{item.image}}" mode="aspectFit"></image>
<view class="name">{{item.name}}</view>
<view class="price">¥{{item.price}}</view>
<image class="check" src="/images/check.png" wx:if="{{item.selected}}"></image>
</view>
</view>
<view class="footer">
<button class="submit" bindtap="submit">确定</button>
</view>
</view>
```
在上述代码中,我们首先定义了一个 `products` 数组,其中包含了若干个商品对象,每个商品对象包含了 `id`、`name`、`price`、`image` 和 `selected` 字段。`selected` 表示当前商品是否被选择。
接下来,我们在页面中展示了这些商品,并且通过 `wx:for` 循环渲染了一个商品列表。列表中每个商品都有一个点击事件 `bindtap="selectProduct"`,用于在用户点击该商品时,将其置为已选择。
最后,我们在页面底部增加了一个“确定”按钮,并且通过 `bindtap="submit"` 绑定了一个点击事件,用于在用户点击确定按钮时,将已选择的商品以文本形式返回。
下面是对应的 JavaScript 代码:
```javascript
Page({
data: {
products: [
{ id: 1, name: '商品1', price: 9.9, image: '/images/product1.png', selected: false },
{ id: 2, name: '商品2', price: 19.9, image: '/images/product2.png', selected: false },
{ id: 3, name: '商品3', price: 29.9, image: '/images/product3.png', selected: false },
],
},
selectProduct: function (e) {
var index = e.currentTarget.dataset.index;
var products = this.data.products;
products[index].selected = !products[index].selected;
this.setData({
products: products,
});
},
submit: function () {
var products = this.data.products;
var selectedProducts = products.filter(function (item) {
return item.selected;
});
var text = selectedProducts.map(function (item) {
return item.name + '(¥' + item.price + ')';
}).join('\n');
wx.showModal({
title: '已选择商品',
content: text,
showCancel: false,
});
},
});
```
在上述代码中,我们首先定义了一个 `data` 对象,其中包含了一个 `products` 数组,与上述 HTML 代码中的 `products` 数组相同。
接着,我们定义了一个 `selectProduct` 方法,用于在用户点击某个商品时,将其状态置为已选择或未选择。该方法会通过 `setData` 更新 `products` 数组,并且触发页面重新渲染。
最后,我们定义了一个 `submit` 方法,用于在用户点击确定按钮时,将已选择的商品以文本形式返回。该方法会通过 `filter` 方法过滤出已选择的商品,并且通过 `map` 方法将其转换为文本形式。最后,我们通过 `wx.showModal` 弹出一个对话框,展示已选择的商品。