<view class="container"> <view class="page-body"> <form catchsubmit="formSubmit" catchreset="formReset"> <block wx:for="{{3}}"> <view class="page-section"> <view class="page-section-title">input</view> <view class="weui-cells weui-cells_after-title"> <view class="weui-cell weui-cell_input"> <view class="weui-cell__bd" style="margin: 30rpx 0" > <input class="weui-input" name="input{{index}}" placeholder="这是一个输入框" /> </view> </view> </view> </view> </block> <view class="btn-area"> <button style="margin: 30rpx 0" type="primary" formType="submit">Submit</button> <button style="margin: 30rpx 0" formType="reset">Reset</button> </view> </form> </view> </view>
Page({ onShareAppMessage() { return { title: 'form', path: 'page/component/pages/form/form' } }, data: { pickerHidden: true, chosen: '', num:4 }, formSubmit(e) { console.log('form发生了submit事件,携带数据为:', e.detail.value) }, formReset(e) { console.log('form发生了reset事件,携带数据为:', e.detail.value) this.setData({ chosen: '' }) } })
下次拓展功能。input 输入的时候,根据input内容 时实生成 一些内容。比较算乘法 计算字符串长度 请求后台获取内容。
<view class="container"> <view class="page-body"> <form catchsubmit="formSubmit" catchreset="formReset"> <block wx:for="{{products}}" wx:key="index"> <view class="page-section"> <view class="page-section-title">商品 {{index + 1}}</view> <view class="weui-cells weui-cells_after-title"> <view class="weui-cell weui-cell_input"> <view class="weui-cell__bd" style="margin: 30rpx 0"> <input class="weui-input" name="price{{index}}" placeholder="单价" value="{{item.price}}" bindinput="priceInput" data-index="{{index}}" /> <input class="weui-input" name="quantity{{index}}" placeholder="数量" value="{{item.quantity}}" bindinput="quantityInput" data-index="{{index}}" /> <view class="total">单项总价:{{item.total}}</view> </view> </view> </view> </view> </block> <!-- 添加总价显示 --> <view class="total-price">总价:{{totalPrice}}</view> <view class="btn-area"> <button style="margin: 30rpx 0" type="primary" formType="submit">Submit</button> <button style="margin: 30rpx 0" formType="reset">Reset</button> </view> </form> </view> </view> Page({ data: { products: [ { price: 0, quantity: 0, total: 0 }, { price: 0, quantity: 0, total: 0 }, { price: 0, quantity: 0, total: 0 } ], totalPrice: 0 }, // 单价输入处理 priceInput(e) { const index = e.currentTarget.dataset.index; const value = e.detail.value; this.updateProduct(index, 'price', value); }, // 数量输入处理 quantityInput(e) { const index = e.currentTarget.dataset.index; const value = e.detail.value; this.updateProduct(index, 'quantity', value); }, // 更新商品数据并计算总价 updateProduct(index, field, value) { const products = this.data.products; // 转换输入值为数字(空值转为0) const numericValue = value ? parseFloat(value) : 0; products[index][field] = numericValue; // 计算单项总价 products[index].total = products[index].price * products[index].quantity; this.setData({ products, totalPrice: this.calculateTotal(products) }); }, // 计算所有商品总价 calculateTotal(products) { return products.reduce((sum, item) => sum + item.total, 0); }, // 其他原有代码... formSubmit(e) { console.log('表单数据:', e.detail.value) }, formReset(e) { this.setData({ products: this.data.products.map(item => ({ price: 0, quantity: 0, total: 0 })), totalPrice: 0 }) } })
站长微信:xiaomao0055
站长QQ:14496453