微信小程序表單中獲取多個相同name的input的值


首先,微信小程序是不支持直接獲取的,和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;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM