在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

微信小程序之表單校驗技巧完成的案例

微信小程序之表單校驗技巧完成的案例

更新時間:2025-09-30 文章作者:未知 信息來源:網絡 閱讀次數:

微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。
微信小程序最難實現的公共業務是什么?應該是表單校驗,這篇文章主要介紹了微信小程序如何實現表單校驗功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

小程序SDK版本 1.4

表單校驗之難

如果要問微信小程序最難實現的公共業務是什么?應該是表單校驗,沒有之一。原因如下:

表單組件在數量上達到11個,居各類組件之首。當然幸運的是,并不是所有的都需要校驗。
而這些組件操作方式多樣,可分為滑動、(多行)輸入、點擊、點擊+滑動。
即使是同一個組件,因為業務場景不同就會有不同的校驗規則。
更麻煩的是,這些組件之間經常還會聯動或者關聯校驗。

但是,作為一個非簡單靜態頁面,有著較多用戶交互的小程序,表單校驗又是一個非常常用的功能:登錄、注冊、新增、編輯…

總而言之:表單組件的多樣性 X 校驗規則的多樣性 = 復雜的公共業務

這么棘手的問題我們怎么來解決它呢?

嘗試組件化

如果你關注近年前端發展趨勢,一定會想到“組件化”來實現:

把每個表單組件的視圖、樣式、校驗邏輯封裝成單獨的業務組件,然后直接調用。

可事情似乎沒這么簡單。

如果考慮把n個原生組件抽象出來,配上n個校驗規則,再乘以組件之間的關系n(的全排列),復雜度至少達到n3。

而且每個組件的校驗失敗或成功都要通知父組件,以便顯示錯誤信息或者進行下一步操作。

這樣不但沒有解決問題,反而使得這些公用的表單組件過于復雜,耦合混亂。

嘗試非組件化

既然原先的思路行不通,再來回到出發點,看看我們最核心的需要被抽象出來的是什么。

無非是兩樣東西:視圖層的元素樣式和邏輯層的校驗規則。

上面說到封裝原生表單組件會極大的增加復雜度,索性放棄它,復雜度瞬間可以下降到n2。

但同時我們又要保持樣式統一,也就是我們常說的風格一致。

比如輸入框該多高,錯誤提示怎么顯示,字體大小顏色…之類的。

這個好辦,我們把樣式類寫入一個公共樣式文件form.wxss,然后需要的時候引入,甚至可以全局引入。


// form.wxss
.form {
 display: block;
 font-size: 28rpx;
 position: relative;
}
.form-line {
 background-color: #fff;
 border-bottom: 1px solid #e5e5e5;
 font-size: 34rpx;
 height: 96rpx;
 line-height: 96rpx;
 display: flex;
 padding: 0 31rpx;
}
.form-title {
 box-sizing: border-box;
 background-color: #efefef;
 color: #838383;
 font-size: 28rpx;
 padding: 31rpx;
 min-height: 90rpx;
}
...

我們使用的時候只需要在對應的元素上添加相應的樣式即可。比如:


// xxx.wxml
<form class="form">
 <view class="form-title">請輸入手機號</view>
 <view class="form-line">
  <label class="label">手機</label>
  <view class="form-control">
   <input class="f-1 va-m input" />
  </view>
 </view>
 ...
</form>

那么接下來我們只剩下校驗規則和組件關聯關系之間這兩個難題了。

校驗規則理想的狀態是可擴展和可配置。

可擴展。隨著業務的增長,在不修改已有規則情況可以新增校驗規則。

可配置。可單獨為每個表單組件配置不同的單個或多個校驗規則。

如何做到可定義?用統一的形式即可。比如:


/*
統一的格式:
[規則名]: {
 rule: [校驗方式]
 msg: [錯誤信息]
}
*/
const validators = {
 // 簡單的校驗用正則
 required: {
  rule: /.+/,
  msg: '必填項不能為空'
 },
 // 復雜的校驗用函數
 same: {
  rule (val='', sVal='') {
   return val===this.data[sVal]
  },
  msg: '密碼不一致'
 }
 ...
}

如何做到可配置?配置上支持類似數組的形式,然后用統一的函數依次讀取這些校驗規則,逐個校驗。

配置的規則肯定是在原生表單組件上,至于組件的值也只能通過事件對象獲取。

如果直接綁定事件進行校驗會阻礙父頁面獲取值,所以最好由父頁面綁定事件傳值,并且傳入事件對象和執行環境進行處理:


/*
校驗函數部分代碼
e 事件對象
context 頁面對象函數執行的上下文環境
*/
let validate = (e, context) => {
 // 從事件對象中獲取組件的值
 let value = (e.detail.value || '').trim()
 // 從事件中獲取校驗規則名稱
 let validator = e.currentTarget.dataset.validator ? e.currentTarget.dataset.validator .split(',') : []
 // 遍歷規則進行校驗
 for (let i = 0; i < validator.length; i++) {
  let ruleName = validator[i].split('=')[0]
  let ruleValue = validator[i].split('=')[1]
  let rule = validators[ruleName].rule || /.*/
  if ('function' === typeof rule) {
   rule.call(context, value, ruleValue) ? '' : validators[ruleName].msg
  } else {
   rule.test(value) ? '' : validators[ruleName].msg
  }
 }
 ...
}


調用起來也非常簡單,按照固定的格式加上對應的樣式,配置校驗規則,然后調用校驗函數。


// 部分代碼示例
// page.wxml
<form>
 <!-- 一個表單組件 -->
 <view class="form-line">
  <label class="label">授權手機</label>
  <view class="form-control">
   <!-- 校驗規則:必須填寫,且為電話號碼 -->
   <input maxlength="11" class="f-1 va-m input" bindblur="validate" type="number" data-name="phone" data-validator="required,phone" confirm-type="next" value="{{phone}}" />
   <!-- 錯誤圖標 -->
   <icon wx:if="{{form.phone!==undefined}}" type="{{form.phone?'warn':'success'}}" size="16" />
  </view>
 </view>
 ...
</form>
// page.js
valid(e) {
 this.setData({
  [e.currentTarget.dataset.name]: e.detail.value
 })
 validate(e, this)
}

總結

以上就是微信小程序之表單校驗功能實現的實例的詳細內容,更多請關注php中文網其它相關文章!


小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 无限资源日本好片| 亚洲一区二区三区四区精品| a级片一区二区| 国产欧美精品一二三| 天天操天天爱天天爽| 亚洲精品中文字幕无码蜜桃| 男人操女人逼免费视频| 国产中文字幕二区| 国产一区二区视频播放| 亚洲午夜精品久久久久久人妖| 污污污污污污www网站免费| 久青草视频在线播放| 亚洲色欲久久久综合网东京热| 91精品国产毛片武则天| 真实国产乱子伦对白视频| 妞干网在线播放| 免费 成 人 黄 色| 亚洲中文字幕无码专区| 亚洲天堂av线| 亚洲国产成人va在线观看麻豆| 岛国av免费在线| 国产911在线观看| 99在线精品免费视频| 黄色国产精品视频| 亚洲欧美视频二区| 超碰超碰超碰超碰超碰| 3d动漫一区二区三区| 少妇一级淫免费放| 亚洲黄色网址在线观看| 国产精品久久..4399| 黄色一级二级三级| 欧美一级特黄aaa| 日韩欧美国产综合在线| 手机看片福利盒子久久| 今天免费高清在线观看国语| 欧美 日韩 国产 高清| 亚洲a级黄色片| 久青草视频在线播放| www午夜视频| 丝袜人妻一区二区三区| 中文字幕亚洲影院| 国产婷婷一区二区三区| 国产精品美女在线播放| 国产精品无码av无码| 激情视频小说图片| 日本人69视频| 成人免费观看毛片| 老司机午夜网站| 天天色综合天天色| heyzo国产| www.亚洲视频.com| 亚洲精品成人在线播放| 久久精品99国产| 欧美在线观看视频免费| 在线观看免费视频污| 欧美成人福利在线观看| 可以免费观看av毛片| 欧美 日韩 国产 高清| 日本大片免费看| 少妇高潮大叫好爽喷水| 香蕉视频色在线观看| 成人性生生活性生交12| 人妻精品无码一区二区三区| 国产av人人夜夜澡人人爽麻豆| 五月天综合婷婷| 26uuu成人| 欧美h视频在线观看| 天天干天天操天天干天天操| 亚洲欧美一区二区三区不卡| 99久久99精品| 欧美 国产 精品| 吴梦梦av在线| 国产尤物av一区二区三区| 国产精品88久久久久久妇女| 国产爆乳无码一区二区麻豆| av久久久久久| 免费看一级大黄情大片| www黄色日本| 国产精品久久久毛片| 国产一区二区在线观看免费视频| 久久精品亚洲天堂| 日韩精品综合在线| 国产极品在线视频| 国产极品美女高潮无套久久久| 天天视频天天爽| 精品91一区二区三区| 久久久久久久久久网| xxww在线观看| 日本a级片在线观看| 噜噜噜久久亚洲精品国产品麻豆| 日韩av播放器| 六月婷婷激情网| 黄色免费观看视频网站| 69久久久久久| av动漫在线播放| 国产九九在线视频| 97在线免费视频观看| 欧美日韩在线成人| 久久99国产精品一区| 国产真实乱子伦| 看一级黄色录像| 国产福利影院在线观看| 中文精品无码中文字幕无码专区| 88av.com| 国产九色porny| 极品粉嫩美女露脸啪啪| 国产综合中文字幕| 中文字幕第66页| 亚洲一区二区三区四区五区xx| 国产91沈先生在线播放| gogogo高清免费观看在线视频| 妺妺窝人体色777777| 99精品视频网站| 超碰成人在线播放| 日韩毛片在线免费看| 日本一本中文字幕| 91视频福利网| 可以看污的网站| 亚洲免费看av| 欧美午夜性生活| 三级4级全黄60分钟| 五月丁香综合缴情六月小说| 国产xxxxhd| 最新中文字幕久久| 国产原创精品在线| 一区二区三区韩国| 老熟妇仑乱视频一区二区| 缅甸午夜性猛交xxxx| 99热亚洲精品| 欧美日韩激情四射| 黄色一级片av| 大片在线观看网站免费收看| 国产四区在线观看| 穿情趣内衣被c到高潮视频| 成人不卡免费视频| 亚洲免费在线播放视频| 伊人成人免费视频| 国产女人18毛片| 2019日韩中文字幕mv| www.av毛片| 国产乱子夫妻xx黑人xyx真爽| 日本精品免费在线观看| 18禁免费观看网站| 国产熟人av一二三区| 九热视频在线观看| 热久久久久久久久| 伊人精品视频在线观看| 欧美大黑帍在线播放| 日韩伦理在线免费观看| 欧美日韩在线中文| 亚洲精品自拍网| 天天干天天曰天天操| 国产无限制自拍| 蜜桃免费在线视频| 欧洲美女和动交zoz0z| 人妻激情另类乱人伦人妻| 国产h视频在线播放| 91亚洲免费视频| 成年人视频网站免费| 欧美日韩亚洲一二三| 婷婷中文字幕在线观看| 久艹视频在线免费观看| 不卡av免费在线| 国产乱子伦精品视频| 免费日韩中文字幕| 91香蕉国产线在线观看| 91九色丨porny丨国产jk| 亚洲黄色小视频在线观看| 一级全黄肉体裸体全过程| 黄色动漫在线免费看| 亚洲综合123| 欧美日韩亚洲第一| 四虎4hu永久免费入口| 日本女优爱爱视频| 国产一区二区片| 日韩欧美亚洲另类| 91丨porny丨探花| 日韩国产精品毛片| 九色91popny| 人妻久久久一区二区三区| 亚洲精品综合在线观看| 国产精品-区区久久久狼| 久久男人资源站| 亚洲综合20p| 一道本在线免费视频| av片中文字幕| 黄色动漫网站入口| www.日本少妇| www.男人天堂网| 91九色国产ts另类人妖| 8x8x成人免费视频| 亚洲最大成人在线观看| 青青青在线播放| 日本a级片免费观看| 999在线观看视频| 国产综合中文字幕| 亚洲熟妇无码av在线播放| 免费观看黄色的网站| 三级a三级三级三级a十八发禁止| 一女被多男玩喷潮视频|