|
新手剛學編程不久,然后遇到了picker組件的坑,都知道picker通過form提交的時候是提交它的下標,然而,我們提交到服務器的要下標并沒什么卵用,上網查了一輪都沒找到具體說法,有的說是數組寫成[{id:0,name:xxx},{id:1,name:xxx}]之類形式,然后根據下標對應id去拿到name提交服務器,看得我糊里糊涂,后來試了一輪,終于找到最簡單直接的方法。
首先,假設data中有這么一個數組
-
data: {
-
-
MusicN: 0,
-
-
Music: ['鋼琴','小提琴','吉他','聲樂','其他','未決定' ]
-
-
}
wxml是這樣
-
<form bindsubmit="formSubmit">
-
-
<picker name="instrument" bindchange="bindPickerMusic" value="{{MusicN}}" range="{{Music}}">{{Music[MusicN]}}</picker>
-
-
<button type="primary" formType="submit"> 提交 </button>
-
-
</form >
兩個組件綁定的函數
-
// Picker改變選項的時候
-
-
bindPickerMusic: function (e) {
-
-
console.log('picker發(fā)送選擇改變,攜帶值為', e.detail.value)
-
-
this.setData({
-
-
MusicN: e.detail.value
-
-
})
-
-
},
-
-
-
-
//form提交表單
-
-
formSubmit: function (e) {
-
-
console.log('picker的攜帶值為' + e.detail.value.instrument)
-
-
//e.detail.value.instrument是picker提交的下標,直接寫在數組后面的中括號里,得到數組中對應的值
-
-
var ins = this.data.Music[e.detail.value.instrument]
-
-
console.log('輸出的是' + ins)
輸出結果: 
之后就可以開心愉快地提交給服務器的小伙伴們了
|