欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年09月03日 15:26:39   作者:半路涼亭  
這篇文章主要介紹了微信小程序表單驗(yàn)證插件WxValidate的二次封裝功能(終極版),文中給大家提到了最終版與前面2版的不同點(diǎn),需要的朋友可以參考下

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

這種在極端情況下也不太好,例如我例子里的一頁的表單個(gè)數(shù)非常多的情況下,可能后面的還沒看到就消失了。所以最近又重新做了一版,最終版的效果如下圖:錯(cuò)誤信息一次性全部顯示,可以通過點(diǎn)擊信息框讓其消失,將自動(dòng)消失時(shí)間設(shè)置的稍微長點(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='請輸入' 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ù)提交中,請稍后...");
 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的二次封裝功能(終極版),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • JavaScript下通過的XMLHttpRequest發(fā)送請求的代碼

    JavaScript下通過的XMLHttpRequest發(fā)送請求的代碼

    JavaScript下通過的XMLHttpRequest發(fā)送請求的代碼,需要的朋友可以參考下。
    2011-06-06
  • javascript自動(dòng)切換焦點(diǎn)控制效果完整實(shí)例

    javascript自動(dòng)切換焦點(diǎn)控制效果完整實(shí)例

    這篇文章主要介紹了javascript自動(dòng)切換焦點(diǎn)控制效果的方法,結(jié)合完整實(shí)例形式分析了JavaScript響應(yīng)鍵盤按鍵控制表單輸入框的焦點(diǎn)切換功能,需要的朋友可以參考下
    2016-02-02
  • 在JavaScript中正確引用bind方法的應(yīng)用

    在JavaScript中正確引用bind方法的應(yīng)用

    本文的重點(diǎn)在于討論bind()方法的實(shí)現(xiàn),在開始討論bind()的實(shí)現(xiàn)之前,我們先來看看bind()方法的使用,有需要的小伙伴可以參考下。
    2015-05-05
  • 手把手15分鐘搭一個(gè)企業(yè)級腳手架

    手把手15分鐘搭一個(gè)企業(yè)級腳手架

    這篇文章主要介紹了手把手15分鐘搭一個(gè)企業(yè)級腳手架,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 關(guān)于JS中的apply,call,bind的深入解析

    關(guān)于JS中的apply,call,bind的深入解析

    下面小編就為大家?guī)硪黄P(guān)于JS中的apply,call,bind的深入解析。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-04-04
  • JS調(diào)用打印方法設(shè)置頁眉頁腳的實(shí)例

    JS調(diào)用打印方法設(shè)置頁眉頁腳的實(shí)例

    一個(gè)網(wǎng)頁打印相關(guān)功能的擴(kuò)展演示特效,在實(shí)現(xiàn)了打印功能外,還實(shí)現(xiàn)了打印預(yù)覽、打印前的頁眉頁腳設(shè)置,直接打印等功能,以前對JS打印前設(shè)置頁腳見的不多,所以這一個(gè)也算是挺有價(jià)值的,希望閑暇時(shí)參閱
    2013-05-05
  • 簡述JS瀏覽器的三種彈窗

    簡述JS瀏覽器的三種彈窗

    本文給大家簡單介紹了JS瀏覽器的三種彈窗,簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-07-07
  • JS工廠模式開發(fā)實(shí)踐案例分析

    JS工廠模式開發(fā)實(shí)踐案例分析

    這篇文章主要介紹了JS工廠模式開發(fā),結(jié)合具體實(shí)踐案例形式分析了基于javascript工廠模式實(shí)現(xiàn)的輪播功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • JavaScript數(shù)據(jù)類型學(xué)習(xí)筆記

    JavaScript數(shù)據(jù)類型學(xué)習(xí)筆記

    這篇文章主要針對JavaScript數(shù)據(jù)類型整理的學(xué)習(xí)筆記,分享給大家,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 手機(jī)注冊發(fā)送驗(yàn)證碼倒計(jì)時(shí)的簡單實(shí)例

    手機(jī)注冊發(fā)送驗(yàn)證碼倒計(jì)時(shí)的簡單實(shí)例

    下面小編就為大家分享一篇手機(jī)注冊發(fā)送驗(yàn)證碼倒計(jì)時(shí)的簡單實(shí)例。具有很好的參考價(jià)值,一起跟隨小編過來看看吧,希望對大家有所幫助
    2017-11-11

最新評論