![【移动应用开发技术】微信小程序使用车牌号输入法_第1页](http://file4.renrendoc.com/view/380101571ab06ec722f24e8fb41dad84/380101571ab06ec722f24e8fb41dad841.gif)
![【移动应用开发技术】微信小程序使用车牌号输入法_第2页](http://file4.renrendoc.com/view/380101571ab06ec722f24e8fb41dad84/380101571ab06ec722f24e8fb41dad842.gif)
![【移动应用开发技术】微信小程序使用车牌号输入法_第3页](http://file4.renrendoc.com/view/380101571ab06ec722f24e8fb41dad84/380101571ab06ec722f24e8fb41dad843.gif)
![【移动应用开发技术】微信小程序使用车牌号输入法_第4页](http://file4.renrendoc.com/view/380101571ab06ec722f24e8fb41dad84/380101571ab06ec722f24e8fb41dad844.gif)
![【移动应用开发技术】微信小程序使用车牌号输入法_第5页](http://file4.renrendoc.com/view/380101571ab06ec722f24e8fb41dad84/380101571ab06ec722f24e8fb41dad845.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】微信小程序使用车牌号输入法
这篇文章将为大家详细讲解有关微信小程序使用车牌号输入法,在下觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在做小程序时,做了一个关于车的项目,然后需要添加车辆信息、添加车牌号,使用车牌键盘输入,当时我把这个需求给砍了,然后在添加车辆信息时,老大看到数据库里我乱填的车牌号,又让我把他加上了^o^1、效果图2.相关代码使用组件形式实现键盘输入组件代码index.wxml<view
class="carPlate"
wx:if="{{show}}">
<block
wx:if="{{type==1}}">
<view
class="wordList">
<view
class="wordItem"
wx:for="{{cityKeyword1}}"
wx:key="{{item}}"
bindtap="handleClick"
data-type="1"
data-item="{{item}}">{{item}}</view>
</view>
<view
class="wordList">
<view
class="wordItem"
wx:for="{{cityKeyword2}}"
wx:key="{{item}}"
bindtap="handleClick"
data-type="1"
data-item="{{item}}">{{item}}</view>
</view>
<view
class="wordList">
<view
class="wordItem"
wx:for="{{cityKeyword3}}"
wx:key="{{item}}"
bindtap="handleClick"
data-type="1"
data-item="{{item}}">{{item}}</view>
</view>
<view
class="wordList">
<view
class="wordItem"
wx:for="{{cityKeyword4}}"
wx:key="{{item}}"
bindtap="handleClick"
data-type="1"
data-item="{{item}}">{{item}}</view>
</view>
</block>
<block
wx:else>
<view
class="wordList">
<view
class="wordItem"
wx:for="{{keyNumber}}"
wx:key="{{item}}"
bindtap="handleClick"
data-type="2"
data-item="{{item}}">{{item}}</view>
</view>
<view
class="wordList">
<view
class="wordItem"
wx:for="{{wordList1}}"
wx:key="{{item}}"
bindtap="handleClick"
data-type="2"
data-item="{{item}}">{{item}}</view>
</view>
<view
class="wordList">
<view
class="wordItem"
wx:for="{{wordList2}}"
wx:key="{{item}}"
bindtap="handleClick"
data-type="2"
data-item="{{item}}">{{item}}</view>
<view
class="wordItem
wordClear"
bindtap="handleClick"
data-item="delete">
<image
src="/images/input-clear.png"
class="clearImg"></image>
</view>
</view>
<view
class="wordList">
<view
class="wordItem"
wx:for="{{wordList3}}"
wx:key="{{item}}"
bindtap="handleClick"
data-item="{{item}}">{{item}}</view>
<view
class="wordItem
wordConfirm"
bindtap="handleClick"
data-item="confirm">确定</view>
</view>
</block>
</view>index.css.carPlate{
position:
fixed;
padding:
12rpx
12rpx
30rpx;
left:
0;
bottom:
0;
width:
100%;
/*
height:
150px;
*/
font-size:
30rpx;
background:
#fff;
box-sizing:
border-box;
border-top:
1px
solid
rgb(211,
207,
207);
z-index:
200;
}
.wordList{
display:
flex;
width:
100%;
justify-content:
space-between;
align-items:
center;
}
.wordItem{
margin:
5rpx;
width:
70rpx;
height:
70rpx;
line-height:
70rpx;
text-align:
center;
border:
1px
solid
#eee;
border-radius:
10rpx;
}
.wordConfirm{
width:
130rpx;
color:
#fff;
background:
#473af0;
}
.wordClear{
width:
100rpx;
}
.clearImg{
width:
60rpx;
height:
60rpx;
vertical-align:
middle;
}index.jsComponent({
properties:
{
type:
{
type:
Number,
default:
1,
},
show:
{
type:
Boolean,
default:
false,
}
},
data:
{
cityKeyword1:
'京沪浙苏粤鲁晋冀豫',
cityKeyword2:
'川渝辽吉黑皖鄂湘赣',
cityKeyword3:
'闽陕甘宁蒙津贵云',
cityKeyword4:
'桂琼青新藏港澳台',
keyNumber:
'1234567890',
wordList1:
'QWERTYUIOP',
wordList2:
'ASDFGHJKL',
wordList3:
'ZXCVBNM',
},
methods:
{
handleClick(e)
{
let
value
=
e.currentTarget.dataset.item;
let
type
=
e.currentTarget.dataset.type;
switch(value)
{
case
'confirm':
this.triggerEvent('confirm');
break;
case
'delete':
this.triggerEvent('delete');
break;
default:
this.triggerEvent('change',
{
value,
type
});
}
}
}
})3.父组件引入我想实现点击输入后有上拉的效果,开始我想使用offset来实现的,但是下班后洗衣服想了下,不太好实现,我就想到了我以前做购物车时,有用到transform,原理差不多,我就把他用上了然后就是点击键盘外实现收起键盘,开始我想到的就是在父组件的最外层定义关闭事件,父级里面的盒子都使用catch方法阻止冒泡,但想下阻止冒泡好像又有点不合情理,就又把阻止冒泡给去掉了父组件index.wxml<view
class="container"
bindtap="handlePlateConfirm">
<view
class="translateView"
style="transform:
translateY({{translateSpace}}px)">
<view
class="list">
<view
class="item">
<view
class="label">*车牌号码</view>
<view
class="contentBox"
catchtap="handleClick">
<view
class="inputBox"
wx:if="{{carNo}}">{{carNo}}</view>
<view
class="promptText"
wx:else>请输入车牌号</view>
</view>
</view>
</view>
</view>
</view>
<car-plate
show="{{showPlateInput}}"
bindchange="handlePlateChange"
type="{{inputType}}"
bindconfirm="handlePlateConfirm"
binddelete="handlePlateDelete"
/>父组件index.jsPage({
data:
{
carNo:
'',
translateSpace:
0,
inputType:
1,
//
车牌输入类型,1简称,2数字或者字母,
showPlateInput:
false,
},
/*
用于点击弹出键盘输入,space为键盘弹出后向上拉取的距离
*/
handleClick(e)
{
/*
150为键盘的高度
*/
let
space
=
-(e.currentTarget.offsetTop
-
150);
/*
regExp用于判断当前已输入的车牌号是否是中文,并让键盘显示中文还是英文输入
*/
let
regExp
=
/^[\u4e00-\u9fa5]+/;
let
inputType
=
1;
if(regExp.test(this.data.carNo))
{
inputType
=
2;
}
this.setData({
translateSpace:
space,
showPlateInput:
true,
inputType
})
},
/*
键盘输入操作
*/
handlePlateChange(e)
{
let
value
=
e.detail.value;
let
type
=
e.detail.type;
let
carNo
=
this.data.carNo;
carNo
+=
value;
if(type
==
1)
{
this.setData({
inputType:
2
})
}
this.setData({
carNo
})
},
/*
点击键盘上的确定
*/
handlePlateConfirm()
{
/*
isCarPlate用于判断输入的车牌号是否符合规范
*/
if
(!this.isCarPlate(this.data.carNo))
{
wx.showToast({
title:
'请输入正确的车牌号',
icon:
'none',
duration:
2000
})
return
false;
}
this.setData({
translateSpace:
0,
showPlateInput:
false,
inputType:
1
})
},
/*
用于键盘输入删除
*/
handlePlateDelete(e)
{
let
carNo
=
this.data.carNo;
carNo
=
carNo.substring(0,
carNo.length
-
1);
if(carNo.length
==
0)
{
this.setData({
inputType:
1
})
}
this.setData({
carNo,
})
},
/*
判断车牌号
*/
isCarPlate(value)
{
return
/^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$/.test(value);
}
})父组件index.css.container{
height:
100vh;
background:
#fff;
}
.transl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人租房合同的(31篇)
- 2024-2025学年北京市房山区高一上学期期中考试历史试卷
- 2025年公共设施配套建设项目房屋征收合同
- 2025年住宅销售策划合同模板规定
- 2025年官方离婚协议范本策划(双方同意版)
- 2025年全球贸易合同制定原则及合规要求解析
- 2025年债权转让与贷款合作协议
- 2025年车辆所有权变更策划协议书模板
- 2025年农村土地利用合作协议
- 2025年人事档案授权委托协议
- 【青岛版《科学》】四年级下册第一单元1 《运动与力》 教学设计
- 加气站安全管理(最新)精选PPT课件
- 47《心经》图解PPT课件(50页PPT)
- 污水管线铺设施工工艺方法
- 维修保运车间岗位职责
- 液碱生产工序及生产流程叙述
- 三年级学生《成长记录》模板
- 好书推荐——《三毛流浪记》
- 方菱F2100B中文系统说明书
- 人教版动手动脑学物理答案 八下
- 九宫格数独题目(打印版)
评论
0/150
提交评论