首先,微信小程序是不支持直接獲取的,和jquery一樣直接獲取name的話,只能獲取到最后一組,所以要用其他的方法
直接上代碼
wxml文件:
<form bindsubmit="formsubmit">
<view wx:for="{{list}}">
<input name="a{{index}}" value="{{item.id}}"></input>
<input name="b{{index}}" value="{{item.value}}" ></input>
</view>
<button form-type="submit"></button>
</form>
js文件
formsubmit:function(e){
var that = this;
//首先獲取到表單提交上來的值,此時input的name是不同的,為a0,a1,a2,a3...
var eValue = e.detail.value;
//將value對象轉為map
var mapValue = utils.objToStrMap(eValue);
//獲取list,此處的目的為獲取list的長度,並通過循環拼接需要取出的names列表
var list = that.data.list;
//設置需要接收數據的數組
var aList = [];
var bList = [];
for(var i = 0;i < list.length;i++){
var ai = "a" + i;
var bi = "b" + i;
var a = mapValue.get(ai);
var b = mapValue.get(bi);
aList.push(a);
bList.push(b);
}
//完事
console.log(aList);
console.log(bList);
}
utils.js文件中的objToStrMap方法
function objToStrMap(obj) {
let strMap = new Map();
for (let k of Object.keys(obj)) {
strMap.set(k, obj[k]);
}
return strMap;
}