微信小程式動態input驗證
- 2019 年 10 月 6 日
- 筆記
最近寫微信小程式,需要使用到動態表單,輸入框都要從伺服器上載入。這裡分享一下解決方案。
let app = getApp() let ajax = require('../../network/ajax') Page({ data: { Custom: {}, lists: [] }, onLoad: function () { if (app.globalData.CUSTOM) //預先獲取了自定義表單資訊,有ID, Required兩個參數 { var array = new Array(); for(var i=0;i<app.globalData.CUSTOM.length;i++) { var array2 = new Array(); array2['index'] = app.globalData.CUSTOM[i]['ID'] array2['value'] = "" array[i] = array2 } this.setData({ Custom: app.globalData.CUSTOM, lists: array }) } }, bindKeyInput: function (e) { let id = e.currentTarget.dataset.id; var thedata = new Array(); thedata['index'] = id thedata['value'] = e.detail.value this.data.lists[id] = thedata; this.setData({ lists: this.data.lists }) }, checkExtraInput() { console.log(this.data.Custom); for(var i=0;i<this.data.lists.length;i++) { var value = this.data.lists[i].value; if (this.data.Custom[i]['Required'] == 1 && value == "") return false; } return true; }, bindFormSubmit: function (e){ if (!this.checkExtraInput()) { wx.showModal({ content: '請完成表單後再試!', showCancel: false }); } else { var array = new Object(); for(var i=0;i<this.data.lists.length;i++) { var array2 = new Object(); array2.id = this.data.Custom[i]['ID']; array2.value = this.data.lists[i].value; array[i] = array2; } console.log(JSON.stringify(array)); //最後轉為JSON格式,Post到伺服器上 }); } } });