话不多说,先上效果图

  1. 效果图 ( 改一改h5也能用 )

  2. 功能列表

  1. 根据输入位置自动显示下方键盘为候选地区或数字字母
  2. 输入位置后自动跳转至下一位
  3. 删除号码后自动返回上一位
  4. 点击可选填新能源号码
  1. 代码复现
    3.1 html结构
<view class="root"><view class="title">请输入要授权的车牌号<text class="gray f-26">(新能源车辆选填)</text></view><!-- 车牌选框 --><view class="num-box"><block wx:for='{{car}}' wx:for-item='box' wx:for-index='idx'><view id="{{idx}}" class="box {{idx==selectIdx?'active':''}}" style="{{idx==7&&box.text=='新能源'?'':'font-size:30rpx;color:#333333;'}}" catchtap="selectCarNum">{{box.text}}</view></block></view><button class="btn" catchtap="btnTap">下一步</button>
</view><!-- 键盘 -->
<view class="keyboard-box"><block wx:for='{{keyboardList}}' ><button hover-class="keyboard-hover" class="{{(selectIdx==1&&index<=9)||(selectIdx>=1&&index>=36)?'keyboard banKeyboard':'keyboard'}}" data-idx="{{index}}" catchtap="{{(selectIdx==1&&index<=9)||(selectIdx>=1&&index>=36)?'':'keyboardTap'}}">{{item}}</button></block><button hover-class="keyboard-hover" class="delete-key" catchtap="deleteTap"><image class="delete-key-logo" mode="widthFix" src="/images/delete-key-logo.png"></image></button>
</view>

3.2 js初始数据

data: {selectIdx:'0', //当前输入框的索引carNumber:'', //最终的车牌号car:[ //车牌{ id: 0, text: '' },{ id: 1, text: '' },{ id: 2, text: '' },{ id: 3, text: '' },{ id: 4, text: '' },{ id: 5, text: '' },{ id: 6, text: '' },{ id: 7, text: '新能源' },],keyboard1:'京津沪渝苏浙豫粤川陕冀辽吉皖闽鄂湘鲁晋黑赣贵甘桂琼云青蒙藏宁新使领警港澳台学',keyboard2:'1234567890ABCDEFGHJKLMNOPQRSTUVWXYZ学澳港',},onLoad: function (options) {//页面初始化时候加载一下键盘的数据,默认为地区显示。let keyboardList1 = this.data.keyboard1.split('');let keyboardList2 = this.data.keyboard2.split('');this.setData({ keyboardList:keyboardList1,keyboardList1,keyboardList2})},

3.3 js对输入框及键盘的处理方法

  selectCarNum(e){ //点击框let that = this;let { selectIdx } = that.data;let idx = e.currentTarget.id;idx == 7 && selectIdx==(6||7) ? selectIdx = 7 : '';that.setData({ selectIdx })},keyboardTap(e){ //点击键盘let that = this;let idx = e.currentTarget.dataset.idx;let { keyboardList,keyboardList1,keyboardList2, car, selectIdx } = that.data;car[selectIdx].text = keyboardList[idx];selectIdx != (6 || 7) ? selectIdx++ : '';that.changeKeyboard(selectIdx);that.setData({car,selectIdx,})},deleteTap(){ //删除let that = this;let { keyboardList, keyboardList1,keyboardList2,car, selectIdx } = that.data;car[selectIdx].text=''if(selectIdx == 7){ car[7].text = '新能源'}selectIdx == 0 ? selectIdx = 0 : selectIdx--;that.changeKeyboard(selectIdx);that.setData({car, selectIdx,})},changeKeyboard(selectIdx){ //根据当前索引切换键盘let { keyboardList, keyboardList1, keyboardList2} = this.data;selectIdx <= 0 ? keyboardList = keyboardList1 : keyboardList = keyboardList2this.setData({ keyboardList })},btnTap(){ //提交let that = this;let { car } = that.data;let carNumber=[];let check=true;car.map((v,k)=>{if(v.text==''){wx.showToast({title: '请正确填写车牌',icon: 'none',duration: 1500,})return check = false;}if(v.text!='新能源'){carNumber.push(v.text)}})if(!check){return}var number = carNumber.join(''); //提交的车牌号that.setData({carNumber:number})wx.setStorageSync('carNumber', number)wx.navigateBack({delta: 1,})},

3.4 css样式

.title{font-size:36rpx;font-family:PingFang SC;font-weight:500;color:rgba(51,51,51,1);margin: 80rpx 0 40rpx;
}/* 车牌选框 */
.num-box{display: flex;flex-wrap: nowrap;}
.box{flex-shrink: 0;width:70rpx;height:90rpx;margin-right: 12rpx;text-align: center;line-height: 90rpx;border:2rpx solid rgba(210,210,210,1);border-radius:10rpx;font-size:30rpx;font-family:PingFang SC;font-weight:500;color:rgba(51,51,51,1);
}
.box:nth-child(2){margin-right: 29rpx;position: relative;
}
.box:last-child{margin-right: 0;font-size:18rpx;font-family:PingFang SC;font-weight:500;color:rgba(168,168,168,1);
}
.box:nth-child(2)::after{position: absolute;content: '';width:8rpx;height:8rpx;border-radius: 50%;background: black;display: inline-block;top: 50%;transform: translateY(-50%);right: -20rpx;margin: 0;padding: 0;font-size:48rpx;font-family:PingFang SC;font-weight:500;color:rgba(51,51,51,1);
}
.box.active{border:2rpx solid #44C75F;
}
.btn{width:690rpx;height:90rpx;margin: 80rpx 0 34rpx;line-height: 90rpx;background:#44C75F;border-radius:45rpx;font-size:32rpx;font-family:PingFang SC;font-weight:500;color:rgba(255,255,255,1);
}
.keyboard-box{position: fixed;bottom: 0;left: 0;right: 0;box-sizing: border-box;padding-top: 27rpx;padding-left: 10rpx;display: flex;flex-wrap: wrap;width: 750rpx;height: 470rpx;background: #CED4DB;
}
.keyboard{padding: 0;margin-left: 0;width:66rpx;height:92rpx;margin-right: 8rpx;margin-bottom: 16rpx;background:rgba(255,255,255,1);box-shadow: 1rpx 2rpx 2rpx #A8A8A8;border-radius:8rpx;line-height: 92rpx;text-align: center;font-size:36rpx;font-family:PingFang SC;font-weight:500;color:rgba(0,0,0,1);
}
.banKeyboard{color: #D2D2D2;
}
.keyboard-hover{transform: scale(1.1);
}
.delete-key{padding: 0;margin: 0;display: flex;justify-content: center;align-items: center;width:135rpx;height:92rpx;background:rgba(255,255,255,1);border-radius:8rpx;
}
.delete-key-logo{width: 61rpx;
}

微信小程序 自助停车,输入车牌号功能实现相关推荐

  1. 使用 Java(SpringMVC)+MySQL 实现基于微信小程序的停车管理系统【100011100】

    一种基于微信小程序的停车管理系统 摘要: 本项目基于停车管理选题,通过分析各类停车管理的需求和常见的停车管理系统方案,提出了一种基于微信小程序的停车管理系统. 本系统以微信小程序作为前端,在小程序内提 ...

  2. 计算机毕业设计PHP基于微信小程序寸金校园租车平台(源码+程序+uni+lw+部署)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: phpStudy+ Vscode +Mysql5.7 + HBuilderX+Navicat11+Vue ...

  3. 微信小程序 获取input输入的值

    微信小程序 获取input输入的值 view <view><text>姓名:</text><input type='text' name="user ...

  4. 微信小程序的语音输入功能开发:微信同声传译插件

    微信小程序的语音输入,语音转文字功能在很多场景要使用到 比如搜索框,搜索关键字的时候用语音输入比用文字方便多了 再比如再天下网吧小程序里发帖,发布回复时,用语音输入比输入文字也方便不少 那么如何实现语 ...

  5. 微信小程序好看的输入信息界面——发送验证码倒计时

    微信小程序好看的输入信息界面 简介 输入个人信息界面,录入个人信息等都可以使用到这个界面: 1.输入信息的布局界面 2.选择大陆还是港澳台的手机号码 3.输入手机号码, 4.获取验证码的60S倒计时, ...

  6. 基于微信小程序小区租拼车管理信息系统+后台ssm

    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟.本文介绍了微信小程序小区租拼车管理信息系统的开发全过程.通过分析微信小程序小区租拼车管理信息系统管理的不足,创建了一个 ...

  7. 微信小程序 maxlength ios输入拼音也会被限制

    项目场景: 需要限制输入字数长度,直接使用了 maxlength ,但是在苹果系统中发现存在问题 问题描述: 微信小程序 maxlength ios输入拼音时也会被限制 解决方案: 不使用 maxle ...

  8. 【微信小程序/实现】实现留言墙功能页面

    [微信小程序/实现]实现留言墙功能 一.需求分析 二.功能设计 三.页面设计 四.代码 (一)核心代码:向服务器发出请求 (二)完整代码 message.wxml message.wxss messa ...

  9. 微信小程序利用云开发实现评论功能

    微信小程序利用云开发实现评论功能 如果喜欢可以给我一个关注. 一.微信小程序,评论功能的实现. 首先我们先布局,一个文章或者是商品,底下是评论, <!-- 商品详情 --> <vie ...

最新文章

  1. d3设置line长度_使用d3画一些基本的图形
  2. sonar检测java vue项目_Jenkins集成SonarQube 实现构建项目同时审查代码
  3. JS----深拷贝和浅拷贝
  4. SwiftUI5.x微博入门案例第1部分
  5. void 类型的指针
  6. 比较=、==、===
  7. 女程序员在GitHub提交PR更易被拒?开源世界“她”力量
  8. 戴尔科技集团公布 2019 财年第四季度及全年财报,巨大进步和强劲发展的一年...
  9. 传统企业该如何拥抱AI?德勤说野心别太大,分四步实施
  10. Redis - 在电商购物车场景下的实战分析
  11. Linux系统的Redis的安装与运行
  12. kali linux 桌面消失_Kali安装好后,需要修改的一些常用配置
  13. GD32使用ST的HAL库和GD官方库的一些体会
  14. Python贴吧爬虫
  15. CentOS 停服!我们有哪些顶流的国产操作系统
  16. Flutter 与 RN对比
  17. Unity2019安卓平台新手安装设置建议
  18. 人无信则不立,您了解自己的信用情况吗?
  19. 第3期:12306页面制作
  20. java生成二维码,全过程,不要积分

热门文章

  1. 电路仿真软件详谈(26),基于电路仿真软件proteus的流水灯设计
  2. 计算机动画4——关键帧技术
  3. 基于ensp防火墙双击热备二层网络规划与设计
  4. 前端实战|React18极客园——项目打包与优化
  5. 影响保健品购买行为的因素分析
  6. 移动应用PUSH消息基础知识
  7. php卡密验证源码防破解抓包,PHP授权系统v2.7.0定制版 带卡密自助授权功能盗版检测一键更新...
  8. 提高计算机网络可靠性开题报告,计算机网络类论文范文素材,与提高计算机网络可靠性的方法(二)相关研究生毕业论文开题报告范文...
  9. 客户端连接mysql失败问题
  10. 免费的开源linux连接工具MobaXterm分享