亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

微信小程序車牌號碼模擬鍵盤輸入功能的實現代碼

2020-03-21 16:07:11
字體:
來源:轉載
供稿:網友

先來一波預覽圖。

預覽圖片一:

微信小程序,車牌號碼,鍵盤輸入,代碼

預覽圖二:

微信小程序,車牌號碼,鍵盤輸入,代碼

預覽圖三:

微信小程序,車牌號碼,鍵盤輸入,代碼

 預覽圖四:

微信小程序,車牌號碼,鍵盤輸入,代碼

預覽圖五:

微信小程序,車牌號碼,鍵盤輸入,代碼

 大概的效果就和原來圖差不多。

思路解析:車牌號碼由31位漢字,26位字母,10位數字組成的,開頭第一位由省份簡稱的漢字,第二位字母根據省份下的城市或地區區分,最后的五位或者六位,是有字母和數字組成的,共有七位的車牌號碼和八位的車牌號碼,(注:其中的八位數的車牌號碼為能源車的車牌號碼。)

大概的邏輯思維,不包含代碼獲取值什么的或者驗證其他的說明,詳細看代碼片段。

第一,原型的設計思路:先設計好模擬鍵盤的大概架構,樣式。這里的分為三個不同的模擬鍵盤結構合在一起,分部為漢字,字母,數字,其樣式統一;

第二:數據的交互思路:對需要的數據綁定或者修改填充等,如何獲取,通過什么方式獲取,再怎么反饋出來,需要搭建好數據的來回交互傳遞的大概模型;

第三,交互的體驗思路:觸發或者在輸入框點擊輸入的時候,啟動模擬鍵盤,先用漢字選擇,其次是字母,最后由字母和數字混合,對三個架構先進行需求排序的理清;

第四,功能的操作思路:模擬鍵盤的功能性按鈕,比如數字與字母之間的的切換,刪除最后一位數據,清空全部數據和狀態,關閉的結束等操作等體驗。

第五:輸入判斷的思路:判斷車牌號碼輸入的位數,第一位和第二位分部是什么,字母與數字的切換的判斷。刪除到第幾位需要在什么樣的狀態輸入下等。

大概就這這些樣子了,能寫怎么多字,感覺都超綱了,如果有錯的地方,還望留言指正。

最后是源碼:

wxml:

 

 <view class='page wrapper'> <view class="weui-cell__bd">  <view bindtap='LicensePlateNumber' class='LicensePlateNumber'>  <input value='{{LicensePlateNumber}}' disabled='true' placeholder='請選擇'></input>  </view> </view> <view>  <view class='licensePlateShow' hidden='{{licensePlateShowHidden}}'>  <!-- 遮罩層 -->  <view class='licensePlate_Bg' bindtap='licensePlate_close'>  </view>  <!-- 省份 -->  <view class='licensePlate_provinces_Box' hidden='{{licensePlate_provinces_Box}}'>   <view class='licensePlate_provincesTist' wx:for='{{licensePlate_provinces}}' bindtap='licensePlate_provinces' data-licensePlateProvinces='{{item}}' wx:key='index'>{{item}}</view>   <view class='licensePlate_but' bindtap='licensePlate_close'>關閉</view>  </view>  <!-- 字母 -->  <view class='licensePlate_letter_Box' hidden='{{licensePlate_letter_Box}}'>   <view class='licensePlate_letterTist' wx:for='{{licensePlate_letter}}' bindtap='licensePlate_letter' data-licensePlateProvinces='{{item}}' wx:key='index'>{{item}}</view>   <view class='licensePlate_letterTist_but'>   <view class='licensePlate_but' bindtap='licensePlate_switchDigital'>數字</view>   <view class='licensePlate_but' bindtap='licensePlate_delete'>刪除</view>   <view class='licensePlate_but' bindtap='licensePlate_empty'>清空</view>   <view class='licensePlate_but' bindtap='licensePlate_close'>關閉</view>   </view>  </view>  <!-- 數字 -->  <view class='licensePlate_digital_Box' hidden='{{licensePlate_digital_Box}}'>   <view class='licensePlate_digitalTist' wx:for='{{licensePlate_digital}}' bindtap='licensePlate_digital' data-licensePlateProvinces='{{item}}' wx:key='index'>{{item}}</view>   <view class='licensePlate_digital_but'>   <view class='licensePlate_but' bindtap='licensePlate_switchLetter'>字母</view>   <view class='licensePlate_but' bindtap='licensePlate_delete'>刪除</view>   <view class='licensePlate_but' bindtap='licensePlate_empty'>清空</view>   <view class='licensePlate_but' bindtap='licensePlate_close'>關閉</view>   </view>  </view>  </view> </view> </view>

wxss:

  

@import "weui.wxss"; page{  min-height:%;  } .wrapper{  width: rpx;   overflow:hidden; } .licensePlateShow{ width: rpx;  min-height: %; position: absolute; bottom: ; } .licensePlate_Bg{ min-height: %; width: rpx; position: absolute; z-index: ; overflow: hidden; } .licensePlate_provinces_Box{ width: rpx;  background-color: #ddda; margin: auto; position: absolute; bottom: ; display: flex; display: -webkit-flex; flex-wrap: wrap; justify-content: flex-start; /* border-top: px solid #abbbd; */ z-index: ; } .licensePlate_provincesTist{ flex:%; height: rpx; line-height: rpx; margin: auto; text-align: center; background-color:#ffffff;  border-top: px solid #abbbd; border-left: px solid #abbbd; } .licensePlate_provincesTist:nth-child(n){ border-right: px solid #abbbd; } .licensePlate_letter_Box{ width: rpx;  background-color: #ddda; margin: auto; position: absolute; bottom: ; display: flex; display: -webkit-flex; flex-wrap: wrap; justify-content: flex-start; /* border-top: px solid #abbbd; */ z-index: ; } .licensePlate_letterTist{ flex:%; height: rpx; line-height: rpx; margin: auto; text-align: center; background-color:#ffffff;  border-top: px solid #abbbd; border-left: px solid #abbbd; } .licensePlate_letterTist:nth-child(n){ border-right: px solid #abbbd; }  .licensePlate_letterTist:nth-child(){ border-right: px solid #abbbd; } .licensePlate_letterTist_but{ width: rpx; display: flex; display: -webkit-flex; flex-wrap: wrap; justify-content: flex-start; } .licensePlate_digital_Box{ width: rpx;  background-color: #ddda; margin: auto; position: absolute; bottom: ; display: flex; display: -webkit-flex; flex-wrap: wrap; justify-content: flex-start; /* border-top: px solid #abbbd; */ z-index: ; } .licensePlate_digitalTist{ flex:%; height: rpx; line-height: rpx; margin: auto; text-align: center; background-color:#ffffff;  border-top: px solid #abbbd; border-left: px solid #abbbd; } .licensePlate_digital_but{ width: rpx; display: flex; display: -webkit-flex; flex-wrap: wrap; justify-content: flex-start; } .licensePlate_but{ flex: ; height: rpx; line-height: rpx; text-align: center; color: #ffffff; background-color:#ff;  border-top: px solid #abbbd; border-left: px solid #abbbd; } .licensePlate_but:last-child{ border-right: px solid #abbbd; } .LicensePlateNumber{ width: rpx; height: rpx; border-bottom: rpx solid #abbbd }

js:

  

 Page({  data: {  licensePlateShowHidden:true,  licensePlate_provinces_Box:true,  licensePlate_letter_Box: true,   licensePlate_digital_Box: true,  licensePlate_provinces: [  "京", "滬", "浙", "蘇", "粵", "魯",   "晉", "冀", "豫", "川", "渝", "遼",   "吉", "黑", "皖", "鄂", "津", "貴",   "云", "桂", "瓊", "青", "新", "藏",  "蒙", "寧", "甘", "陜", "閩", "贛",   "湘"  ],  licensePlate_letter: [  "A", "B", "C", "D", "E", "F",  "G", "H", "L", "J", "K", "L",  "M", "N", "O", "P", "Q", "R",  "S", "T", "U", "V", "W", "X",  "Y", "Z"  ],  licensePlate_digital: [  "", "", "",   "", "", "",  "", "", "",   ""  ],  LicensePlateNumber:'', }, // 顯示模擬鍵盤 LicensePlateNumber:function(){  var that = this;  var LicensePlateNumber = this.data.LicensePlateNumber;  var LicensePlateNumberLen = LicensePlateNumber.length;  console.log(LicensePlateNumber, LicensePlateNumberLen)  if (LicensePlateNumberLen == ){  this.setData({   licensePlateShowHidden: false,   licensePlate_provinces_Box: false,  })  } else if (LicensePlateNumberLen == ){  this.setData({   licensePlateShowHidden: false,   licensePlate_letter_Box: false,  })  }else{  this.setData({   licensePlateShowHidden: false,   licensePlate_digital_Box: false,  })  } }, // 切換成字母 licensePlate_switchLetter:function(){  this.setData({  licensePlate_provinces_Box:true,  licensePlate_letter_Box:false,  licensePlate_digital_Box: true,  }) }, // 切換成數字 licensePlate_switchDigital: function () {  var LicensePlateNumber = this.data.LicensePlateNumber;  var LicensePlateNumberLen = LicensePlateNumber.length;  if (LicensePlateNumberLen == ){  wx.showToast({   title: '車牌號碼第二位必須是字母',   icon: 'none',   duration: ,  })  }else{  this.setData({   licensePlate_provinces_Box: true,   licensePlate_letter_Box: true,   licensePlate_digital_Box: false,  })  } }, // 刪除 licensePlate_delete: function (e) {  var LicensePlateNumber = this.data.LicensePlateNumber;  var LicensePlateNumberLen = LicensePlateNumber.length;  var LicensePlateNumberDelete = LicensePlateNumber.split('');  var NewLicensePlateNumber = LicensePlateNumberDelete.join('').slice(,-)  if (LicensePlateNumberDelete.slice(,-).length == ){  this.setData({   licensePlate_provinces_Box: true,   licensePlate_letter_Box: false,   licensePlate_digital_Box: true,  })  } else if (LicensePlateNumberLen == || LicensePlateNumber == '' || LicensePlateNumberDelete.slice(, -).length == ){  this.setData({   licensePlate_provinces_Box: false,   licensePlate_letter_Box: true,   licensePlate_digital_Box: true,  })  }  this.setData({   LicensePlateNumber: NewLicensePlateNumber  }) }, // 清空 licensePlate_empty: function (e) {  this.setData({  LicensePlateNumber:'',  licensePlate_provinces_Box: false,  licensePlate_letter_Box: true,  licensePlate_digital_Box: true,  }) }, // 關閉模擬鍵盤 licensePlate_close:function(){  this.setData({  licensePlateShowHidden: true  }) }, // 點擊獲取省份 licensePlate_provinces: function (e) {  this.setData({  LicensePlateNumber: e.target.dataset.licenseplateprovinces,  licensePlate_letter_Box: false,  licensePlate_digital_Box: true,  })  console.log(e.target.dataset.licenseplateprovinces) }, // 點擊獲取字母 licensePlate_letter: function (e) {  var LicensePlateNumber = this.data.LicensePlateNumber;  var LicensePlateNumberLen = LicensePlateNumber.length;  if (LicensePlateNumberLen != ) {  this.setData({   LicensePlateNumber: LicensePlateNumber + e.target.dataset.licenseplateprovinces  })  console.log(e.target.dataset.licenseplateprovinces)  } else {  wx.showToast({   title: '車牌號碼最多不能超過位',   icon: 'none',   duration: ,  })  } }, // 點擊獲取數字 licensePlate_digital: function (e) {  var LicensePlateNumber = this.data.LicensePlateNumber;  var LicensePlateNumberLen = LicensePlateNumber.length;  if (LicensePlateNumberLen != ){  this.setData({   LicensePlateNumber: LicensePlateNumber + e.target.dataset.licenseplateprovinces  })  console.log(e.target.dataset.licenseplateprovinces)  }else{  wx.showToast({   title: '車牌號碼最多不能超過位',   icon:'none',   duration:,  })  } }, })

總結

以上所述是小編給大家介紹的微信小程序車牌號碼模擬鍵盤輸入功能的實現代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕国产精品| 精品国产31久久久久久| 国语自产精品视频在线看| 亚洲va久久久噜噜噜久久天堂| 日韩精品在线观| 日韩中文字幕在线看| 性色av香蕉一区二区| 国产精品天天狠天天看| 国产99视频在线观看| 日韩av在线网址| 正在播放国产一区| 欧美日韩xxx| 国产精品高清在线观看| 久久精品最新地址| 人妖精品videosex性欧美| 色综合久久久久久中文网| 精品成人久久av| 亚洲a成v人在线观看| 国产精品美女呻吟| 国产精品久久久久久婷婷天堂| 久久久午夜视频| 国产精品成人观看视频国产奇米| 亚洲综合在线中文字幕| 成人黄色网免费| 欧美激情视频在线免费观看 欧美视频免费一| 成人黄色av播放免费| 国产视频精品va久久久久久| 国产精品18久久久久久麻辣| 成人福利网站在线观看11| 日韩日本欧美亚洲| 久久精品国产久精国产思思| 国产精品日日摸夜夜添夜夜av| 91夜夜揉人人捏人人添红杏| 国内精品国产三级国产在线专| 国产精品男女猛烈高潮激情| 亚洲色无码播放| 国产亚洲激情视频在线| 日韩在线观看免费高清| 亚洲欧美在线磁力| 日韩在线观看高清| 色综合久久天天综线观看| 91热精品视频| 1769国内精品视频在线播放| 久久免费视频观看| 91高潮精品免费porn| 欧美大片va欧美在线播放| 色中色综合影院手机版在线观看| 欧美精品制服第一页| 97香蕉久久夜色精品国产| 中文字幕9999| 亚洲视频专区在线| 永久免费精品影视网站| 精品国产一区二区三区久久久| 亚洲bt欧美bt日本bt| 日韩的一区二区| 国产精品99久久久久久久久| 久久免费少妇高潮久久精品99| 精品国产一区二区三区久久狼黑人| 久久精品国产久精国产思思| 久久在线免费观看视频| 永久免费毛片在线播放不卡| 国产精品99一区| 国产91精品黑色丝袜高跟鞋| 亚洲片在线资源| 国产做受69高潮| 91香蕉亚洲精品| 国产精品入口福利| 精品久久久久久亚洲国产300| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲成色999久久网站| 亚洲电影免费观看高清完整版在线| 97**国产露脸精品国产| 亚洲大胆人体在线| 欧美性videos高清精品| 欧美电影免费看| 亚洲欧美日韩直播| 欧美人成在线视频| 亚洲国产精品福利| 欧美一区二区三区艳史| 欧美国产中文字幕| 久久影视免费观看| 高清欧美一区二区三区| 美日韩在线视频| 国产精品福利无圣光在线一区| 亚洲精品成人av| 欧美另类极品videosbestfree| 97人洗澡人人免费公开视频碰碰碰| 色综合伊人色综合网站| 国产精品亚洲欧美导航| 国产欧美精品日韩精品| 中文字幕精品www乱入免费视频| 亚洲激情在线观看视频免费| 国产精品高潮在线| 在线播放国产一区中文字幕剧情欧美| 深夜精品寂寞黄网站在线观看| 91爱爱小视频k| 欧美日韩亚洲高清| 午夜精品久久久久久99热| 久久91亚洲精品中文字幕| 亚洲精品资源在线| 91精品国产综合久久久久久久久| 国产精品日韩电影| 欧美黑人xxxⅹ高潮交| 91色精品视频在线| 国产精品高潮呻吟久久av黑人| 91a在线视频| 国产日韩精品在线播放| 97色在线观看| 欧美性猛交xxxx黑人猛交| 岛国av在线不卡| 91香蕉嫩草影院入口| 久久久久久久久亚洲| 欧美日韩第一视频| 欧美激情视频网址| 亚洲美腿欧美激情另类| 91视频8mav| 日韩一区二区三区在线播放| 2021久久精品国产99国产精品| 午夜精品蜜臀一区二区三区免费| 国产精品丝袜久久久久久不卡| 欧美精品在线免费播放| 在线播放日韩精品| 国产亚洲精品美女久久久| 国产区精品在线观看| 国产欧美日韩精品在线观看| 亚洲精品国产福利| 国产丝袜一区二区三区| 久久影院免费观看| 欧美日韩在线另类| 国内精品久久久久影院 日本资源| 亚洲最新av网址| 91精品国产色综合久久不卡98口| 久久国产视频网站| 久久99视频免费| 久久激情五月丁香伊人| 亚洲人午夜精品| 91在线|亚洲| 2025国产精品视频| 色悠悠久久久久| 欧美一级视频在线观看| 亚洲色图欧美制服丝袜另类第一页| 欧美日韩成人在线视频| 国内精品久久久久| 欧美小视频在线| 欧美视频精品一区| 成人精品视频久久久久| 久久久久久久久国产精品| 亚洲成人激情小说| 欧美精品xxx| 欧美精品videosex牲欧美| 久久夜色精品国产亚洲aⅴ| 欧美性受xxx| 久久久国产一区二区| 国产亚洲成精品久久| 91免费视频国产| 久久久日本电影| xvideos亚洲| 色中色综合影院手机版在线观看| 日韩精品高清视频| 亚洲精品国精品久久99热| 欧美日韩美女在线观看| 欧美日韩免费区域视频在线观看| 97精品国产91久久久久久| 亚洲色图综合网|