输入框外部格式化卡号

原理很简单,就是隐藏一个显示格式化的模块,当输入框获取焦点时显示,失去焦点时隐藏即可。

页面代码:

<div class="inputCard-wrap">
  <input type="text" class="inputCard">
  <div class="panelCard"></div>
</div>

<style type="text/css">
  .inputCard-wrap{
    position: relative;
  }
  .inputCard-wrap .panelCard{
    display: none;
    position: absolute;
    top:-34px;
    left:0;
    z-index: 100;
    background-color:#fff9da;
    border:1px #ffce6e solid;
    padding:10px;
    height:40px;
    font-size: 1.7em;
    line-height:18px;
    color:#585858;
  }
</style>

格式化代码:

/* 银行卡号实时验证放大显示 */
$(".inputCard").keyup(function(e){
  var self = $.trim(e.target.value),
    parent = $(e.target).closest(".inputCard-wrap"),
    panel = $(".panelCard", parent),
    val = self.replace(/\D/g, ‘‘);
  if(self.length > 18){
    this.value = self.substr(0, 18);
    return this.value;
  }
  if(val == self){
    panel.show();
    val = self.replace(/(....)(?=.)/g, ‘$1 ‘);
    panel.html(val);
  }else{
    panel.hide();
    return self;
  }
});
$(".inputCard").unbind(‘focusin‘);
$(".inputCard").bind(‘focusin‘,function(e){
  var self = $.trim(e.target.value),
    parent = $(e.target).closest(".inputCard-wrap"),
    panel = $(".panelCard", parent),
    val = self.replace(/(....)(?=.)/g, ‘$1 ‘);
  if(val != ‘‘) {
    panel.show();
    panel.html(val);
  }
});
$(".inputCard").unbind(‘focusout‘);
$(".inputCard").bind(‘focusout‘,function(e){
  var parent = $(e.target).closest(".inputCard-wrap"),
    panel = $(".panelCard", parent);
  panel.hide();
});

/* 银行卡号实时验证放大显示 */

$(".inputCard").keyup(function(e){

  var self = $.trim(e.target.value),

    parent = $(e.target).closest(".inputCard-wrap"),

    panel = $(".panelCard", parent),

    val = self.replace(/\D/g, ‘‘);

  if(self.length > 18){

    this.value = self.substr(0, 18);

    return this.value;

  }

  if(val == self){

    panel.show();

    val = self.replace(/(....)(?=.)/g, ‘$1 ‘);

    panel.html(val);

  }else{

    panel.hide();

    return self;

  }

});

$(".inputCard").unbind(‘focusin‘);

$(".inputCard").bind(‘focusin‘,function(e){

  var self = $.trim(e.target.value),

    parent = $(e.target).closest(".inputCard-wrap"),

    panel = $(".panelCard", parent),

    val = self.replace(/(....)(?=.)/g, ‘$1 ‘);

  if(val != ‘‘) {

    panel.show();

    panel.html(val);

  }

});

$(".inputCard").unbind(‘focusout‘);

$(".inputCard").bind(‘focusout‘,function(e){

  var parent = $(e.target).closest(".inputCard-wrap"),

    panel = $(".panelCard", parent);

  panel.hide();

});

时间: 2024-10-16 17:55:34

输入框外部格式化卡号的相关文章

输入框内格式化金额、银行卡号

我们在项目中经常遇到需要格式化的金额数和银行卡号,一般我们常见的有两种表现形式:输入框内格式化和输入框外格式化.这里我主要把我在项目中遇到的输入框内部格式化的,代码亮出来,框外的格式化相对简单一点. 页面代码: <div class="wrap"> <input type="text" id="bankCard" placeholder="输入银行卡号"> </div> <div cl

Linux下读取RFID卡号(C串口编程)

由于项目需要用到RFID.GPRS.摄像头等模块所以便看了一下,整理了一下学习思路,本篇先是整理一下串口读取RFID卡号的程序思路,后面还会更其他的 RFID模块: 本次采用的是125K的RFID读卡器和标签,很容易理解的,其实就是一张卡片里面存了一串数字(这个问题有点像你问一个艺术家洛必达法则是啥咦洛必达是啥),然后有个读卡器,当你把卡片放到读卡器上时,读卡器会将卡里面存的卡号读取出来,然后放到串口发送缓冲区,等待我们去读取,那么问题就是怎么读取. 串口读写: 大家都知道.linux下面一切皆

Android外部SD卡的读取

1 package com.kevin.writeorreadfile1_1; 2 3 import android.app.Activity; 4 import android.bluetooth.le.ScanFilter; 5 import android.graphics.Bitmap; 6 import android.graphics.BitmapFactory; 7 import android.media.MediaScannerConnection; 8 import andr

sqlserver卡号段分组

之前给上海一家电子商务公司做一个卖卡系统,遇到了卡号段分组的问题.刚开始没什么好的实现方法,遂在博客园求助但未果,没法自己研究sql,终于搞定. 问题描述: 有个卡库存表,有个卡号字段,假设数据:16001,16002,16003,16008.16009,16010,16211,16212.注:实际的数据量会很大,卡号会很长. 现在要这样用sql统计出来,或者用程序实现,卡段号:16001~16003 数量:3    卡段号:16008~16010 数量:3      卡段号:16211~162

python 之简单模拟银行系统功能(卡号申请、还款、支付、取现)

一.简单说明 1.源代码文件见附件 Credit.zip 2.关于转账功能,因时间问题,转账功能待续 4.逻辑图 二.代码 1.包encryption中的(password.py文件) #!/usr/bin/env python # -*- coding: utf-8 -*- """ Created on Thu Nov 10 14:47:29 2016 密码相关功能 @author: toby """ import hashlib, re #密

asserts文件存到外部SD卡里

layout代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare

金蝶核算项目余额表卡号余额与天财商龙CRM卡号余额对比

金蝶核算项目余额表卡号余额与天财尚龙CRM卡号余额对比 由于历史遗留问题,财务一直不调账,修改核算科目卡号与天财商龙CRM系统一直,只能用VBA把卡号前缀修改成两边一致. 再通过,Power BI Desktop进行比对,这个貌似比EXCEL的vlookup好用多了. 由于后期本人不再使用,SO不再进行升级优化,编写成全自动. 利用该方法,有效提高了对比速度,由原来的10多天人工对比,到现在的五六分钟,大大提高了工作效率. 虽然可以优化成一分钟之内实时更新对比数据,输出余额不一致卡号.但是本人不

VISA/MasterCard/AE/DC/JCB卡号结构

VISA和MASTERCARD信用卡卡号通常为16位:xxxx xxxx xxxx xxxx 其中:第1-6位 为发卡行的 BIN NO.第7-12位 卡顺序号第13位 0 代表主卡,1-9 代表副卡第14位 代表卡结单发出日期第15位 代表该卡为第几张卡,补发卡后会加1第16位 检验码 维萨卡(VISA)卡号长度:16位(以前有极少数的卡为13位,现已停止发行了)卡号范围:400000 - 499999 万事达卡(MasterCard)卡号长度:16位卡号范围:510000 - 559999 

Java 自动创建会员信息--包含用户名,卡号,密码,电话号码

|--需求说明 1.自动注册一堆会员账号并保存为本地文件 2.关闭程序,载入本地文件,可以用注册出来的会员账号及密码登录 |--实现方式 1.使用随机的方式生成会员信息 2.使用ObjectOutputStream和ObjectInputStream 对会员信息进行保存和读取 |--代码内容 1 package cn.save; 2 3 import java.io.Serializable; 4 5 /** 6 * @auther::9527 7 * @Description: 用户类 8 *