国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

微信小程序表單驗(yàn)證插件WxValidate的二次封裝功能(終極版)

2019-11-19 10:54:10
字體:
供稿:網(wǎng)友

微信小程序表單驗(yàn)證前面的兩篇文章做的效果總感覺都有點(diǎn)不太友好,第一篇里的效果是將錯(cuò)誤信息通過對(duì)話框形式彈出來,這種形式在web形式下早已經(jīng)淘汰了;第二篇是一次性全部顯示所有的錯(cuò)誤,然后3秒后自動(dòng)消失,

這種在極端情況下也不太好,例如我例子里的一頁(yè)的表單個(gè)數(shù)非常多的情況下,可能后面的還沒看到就消失了。所以最近又重新做了一版,最終版的效果如下圖:錯(cuò)誤信息一次性全部顯示,可以通過點(diǎn)擊信息框讓其消失,將自動(dòng)消失時(shí)間設(shè)置的稍微長(zhǎng)點(diǎn),例如10秒,這樣就能比較好的兼顧效果和使用上的便捷。

先講講最終版與前面2版的不同點(diǎn)

1.前面版本中提到,表單空間里需要添加3個(gè)參數(shù):id,data-fieldname,data-validate 。最終版中只需要 data-validate 即可。

2.由于需要點(diǎn)擊錯(cuò)誤信息框后使其隱藏,則需要通過微信小程序wxs事件響應(yīng)功能,新增事件

一、util.wxs文件

module.exports = { hiddenValidateError: hiddenValidateError}function hiddenValidateError(event, ownerInstance) { var index= event.target.dataset.index; var instance = ownerInstance.selectComponent('.validateText'+index) // 返回組件的實(shí)例 instance.setStyle({ "visibility": "hidden" }) }

二、wxml文件

<wxs module="wxs" src="../../utils/util.wxs"></wxs><block wx:for="{{arrValidate}}" wx:for-item="validateErrorText"> <view class="validateText validateText{{validateErrorText.index}}" animation="{{vaildateErrorText_animation}}" style="visibility:{{validateErrorText.visibility}};top:{{validateErrorText.top}};left:{{validateErrorText.left}};" data-index="{{validateErrorText.index}}" bindtap="{{wxs.hiddenValidateError}}"> {{validateErrorText.msg}} </view></block><form bindsubmit="formSubmit"><view class="wide-info"><view class="wide-info-list"><!--姓名--><view class="info-list"><view class="info-list-1eft"><text class="notEmptyClass">姓名</text></view><view class="info-list-right"><input name='tname' placeholder='請(qǐng)輸入' value='{{form.tname}}' class="wxValidate inputName"data-validate="notEmpty|size[4,10]"/></view></view>......</view><!--按鈕---><view class="buttons-kind"><button class="fabu" form-type="submit">發(fā)布</button></view></form>

三、form.js

onReady: function () { //驗(yàn)證方法 this.WxValidate = new WxValidate();},formSubmit: function (e) { util.loadingMsg("數(shù)據(jù)提交中,請(qǐng)稍后..."); var that = this; console.log('form發(fā)生了submit事件,攜帶的數(shù)據(jù)為:', e.detail.value) const params = e.detail.value  //校驗(yàn)表單 if (!this.WxValidate.checkForm(params)) {  var arrValidate = new Array();  let top = 0;  for (const i in this.WxValidate.errorList){  const error = this.WxValidate.errorList[i]  if(i==0){      top = error.top;  }    const validateErrorText= {id:error.param, visibility: "inherit", top: error.top + "px", left: error.left + "px", msg: error.msg }    arrValidate[i]=validateErrorText;  }  this.setData({arrValidate: arrValidate});)  wx.pageScrollTo({  scrollTop: top,  duration:500  });  setTimeout(function(){      util.fadeOut(that, "vaildateErrorText_animation", 0);  },10000);  wx.hideLoading();   return false }  wx.hideLoading(); //向后臺(tái)發(fā)送時(shí)數(shù)據(jù) wx.request...  util.alert("成功提示", '提交成功 :' + e.detail.value.date); }

以上代碼就是提交表單用到的關(guān)鍵代碼,在實(shí)際使用是,最好將提交功能也做一個(gè)封裝,這樣以后就不用每次都寫這么多代碼了,關(guān)于提交功能的封裝,等有空的時(shí)候在寫了,表單驗(yàn)證插件終極版本在點(diǎn)擊下方路徑下載:

https://github.com/zhuiyue82/wx-wxValidate2.0

總結(jié)

以上所述是小編給大家介紹的微信小程序表單驗(yàn)證插件WxValidate的二次封裝功能(終極版),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 株洲县| 双江| 哈巴河县| 南昌市| 南康市| 荔浦县| 乌审旗| 宽城| 南雄市| 隆林| 读书| 神池县| 尼勒克县| 阳春市| 弋阳县| 白朗县| 桂东县| 青浦区| 清涧县| 萍乡市| 资源县| 静海县| 灵宝市| 达尔| 新平| 福建省| 遂平县| 咸阳市| 图木舒克市| 潜江市| 普安县| 济阳县| 宿迁市| 乌兰县| 库伦旗| 百色市| 三门县| 永川市| 鄂伦春自治旗| 通河县| 平塘县|