微信小程序自定义数字键盘|仿支付宝、微信支付数字软键盘

前几天有开发过一个html5仿支付宝、微信支付数字键盘,在某些特定场景下自定义数字键盘应用还是蛮广泛的,比如 小程序商城系统 需要零钱支付,会员卡支付,心想着微信小程序没有内部数字键盘组件,这样输入密码就需要自己做一个自定义键盘了。于是就在之前插件的基础上试着开发出了这个小程序wcKeyboard数字键盘插件

可以自定义输入最大值限制,当输入超过最大值时候,会有警告提示

还可以自定义键盘背景色 style: ' background: xxx; ',最好设置background颜色较浅为佳:

小程序数字键盘插件内置手机号码验证,当type:'tel'时,输入手机号码为11位会自动检测是否合法:

当配置type:'pwd', 则为密码键盘,可设置密码位数 len: 6

可以随意切换微信键盘、支付宝键盘 skin: wechat/alipay 两种皮肤风格:

  1. init: function (){
  2. console.log('初始化');
  3. var that =this, opt thatopts;
  4. // 处理传参
  5. __thissetData({
  6. __options{
  7. isCloseClsnull __idx __idx isShowPopuptrue
  8. //中间值
  9. kbVal '' //设置调试认值
  10. errfalse//键盘错误信息提示
  11. debug optdebug
  12. idid typetype lenlen completecomplete maxmax stylestyle skinskin okok oninputoninput shadeshade shadeCloseshadeClose opacityopacity animanim
  13. }
  14. });
  15. optshow &&showcall();
  16. __idx ++;
  17. thatcallback();
  18. },0);">{
  19. '事件处理');
  20. ;
  21. // 清除上一个timer
  22. clearTimeout(utiltimer[- 1]);
  23. delete util];
  24. /*
  25. * 键盘处理函数事件 ---------------------------------------
  26. */
  27. // 错误提示
  28. chkErrcls str){
  29. __this({'__options.err']});
  30. setTimeoutfunction(){
  31. __thisfalse});
  32. 2500}
  33. // 键盘值检测
  34. chkValtext){
  35. ifindexOf'.')!=-1 textsubstring+length).length ==3 return;
  36. }
  37. text '0'{
  38. }
  39. // 输入最大值限制
  40. parseInt>=max {
  41. chkErr"error""最大限制值:"toFixed(2));
  42. ;
  43. }
  44. // 输入手机号码判断
  45. type 'tel'{
  46. tel _len parseInttel),0);"> reg /^0?1[3|4|5|8|7][0-9]\d{8}$/;
  47. _len >11;
  48. (!regtest)){
  49. chkErr"手机号码格式有误!");
  50. }else"success""验证通过!"typeofcomplete "function");
  51. }
  52. // 输入密码长度判断
  53. 'pwd');
  54. }
  55. return// 键盘输出
  56. setVal){
  57. '__options.kbVal' text });
  58. oninput // 处理数字1-9
  59. tapNum e){
  60. kbval data__optionskbVal ecurrentTargetdataset val chkValval;
  61. setVal}
  62. // 处理小数点
  63. tapFloat ){
  64. ifkbval ''|| kbval){
  65. ;
  66. // 处理数字0
  67. tapZero );
  68. }
  69. // 处理删除
  70. tapDel 0);
  71. // 处理确定按钮事件
  72. tapSure ;
  73. ok /*
  74. ---------------------------------------
  75. */
  76. // 点击遮罩层关闭
  77. shadeTaped exportAPIclose__idx// 点击键盘xclose按钮关闭
  78. xcloseTaped // 处理销毁函数
  79. .endend);
  80. }

微信键盘布局view模板:


  • class="ul">
  • "li kb-limit nbor {{err[0]}}">{{err[1]}}
  • "li kb-pwd nbor"wx:if"{{type&&type=='pwd'}}">"keyboard__panel-pwd">
  • "li kb-result nbor"style"display:{{debug ?'block''none'}};"{{kbVal}}
  • "li kb-xclose nbor"bind:touchstart"xcloseTaped">src"/utils/component/wcKeyboard/img/icon__kb-xclose.png"mode"aspectFit">
  • "li kb-number nbor"data-textbind:tap"tapNum"1
  • "li kb-number""2"2
  • "3"3
  • "4"4
  • "5"5
  • "6"6
  • "7"7"8"8
  • "9"9"li kb-float nbor {{type=='tel' || type=='pwd' ? 'disabled' : ''}}"".""tapFloat".
  • "li kb-zero""0""tapZero"0"li kb-del""tapDel"×
  • 支付宝键盘布局view模板:

    
    
  • "kb-flexBox flexBox">
  • "kb-one flex1">
  • "li kb-xclose""/utils/component/wcKeyboard/img/icon__kb-xclose2.png">
  • "kb-two""/utils/component/wcKeyboard/img/icon__kb-del.png">
  • "li kb-sure""tapSure"确定
  • 相关文章

    开发微信小程序的用户授权登录功能
    小程序开发页面如何实现跳转?
    浅谈小程序开发中蓝牙连接错误分析及解决方法
    什么是小程序?它有哪些功能?
    如何配置小程序开发项目结构?(教程)
    怎么把自己的店加入小程序