微信小程式動態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到伺服器上        });      }    }  });