最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js格式化輸入框內(nèi)金額、銀行卡號

 更新時間:2016年02月01日 09:23:48   作者:耶特先生  
這篇文章主要介紹了js格式化輸入框內(nèi)金額、銀行卡號,采用“keyup”事件處理格式化,每4位數(shù)一組中間空格隔開,如何格式化輸入框內(nèi)金額、銀行卡號,需要了解的朋友可以參考一下

我們在項目中經(jīng)常遇到需要格式化的金額數(shù)和銀行卡號,一般我們常見的有兩種表現(xiàn)形式:輸入框內(nèi)格式化和輸入框外格式化。這里我主要把我在項目中遇到的輸入框內(nèi)部格式化的,代碼亮出來,框外的格式化相對簡單一點。

頁面代碼:

<div class="wrap">
  <input type="text" id="bankCard" placeholder="輸入銀行卡號">
</div>
 
<div class="wrap">
  <input type="text" id="moneyNum" placeholder="輸入金額">
</div>

 銀行卡號格式化

//卡號每4位一組格式化
    $("#bankCard").on("keyup", formatBC);
 
    function formatBC(e){
 
      $(this).attr("data-oral", $(this).val().replace(/\ +/g,""));
      //$("#bankCard").attr("data-oral")獲取未格式化的卡號
 
      var self = $.trim(e.target.value);
      var temp = this.value.replace(/\D/g, '').replace(/(....)(?=.)/g, '$1 ');
      if(self.length > 22){
        this.value = self.substr(0, 22);
        return this.value;
      }
      if(temp != this.value){
        this.value = temp;
      }
    }
 

這里用“keyup”事件處理格式化,每4位數(shù)一組中間空格隔開。但是數(shù)據(jù)格式化以后又不利于計算,所以給當(dāng)前元素添加一個屬性“data-oral”,保存未處理的數(shù)字,這樣計算或者要傳遞到后臺可以獲取“data-oral”的值。

金額格式化
金額格式化和銀行卡號格式化類似,但又有點不同,因為金額每3位數(shù)一組用逗號隔開,一般最后有小數(shù)點且保留兩位有效數(shù)字。這里我開始用到“keyup”和"change"事件,但是IE瀏覽器對于change事件存在兼容問題,可以改用focus和blur事件代替。

類似給元素添加屬性“data-oral”保存未格式化的數(shù)字。

/*
    * 金額每3位數(shù)一組逗號隔開格式化
    * 1.先把非數(shù)字的都替換掉
    * 2.由于IE瀏覽器對于change事件存在兼容問題,改用focus和blur事件代替。
    * */
    $("#moneyNum").on("keyup", formatMN);
 
    $("#moneyNum").on({
      focus: function(){
        $(this).attr("data-fmt",$(this).val()); //將當(dāng)前值存入自定義屬性
      },
      blur: function(){
        var oldVal=$(this).attr("data-fmt"); //獲取原值
        var newVal=$(this).val(); //獲取當(dāng)前值
        if (oldVal!=newVal) {
          if(newVal == "" || isNaN(newVal)){
            this.value = "";
            return this.value;
          }
          var s = this.value;
          var temp;
 
          if(/.+(\..*\.|\-).*/.test(s)){
            return;
          }
          s = parseFloat((s + "").replace(/[^\d\.\-]/g, "")).toFixed(2) + "";
          var l = s.split(".")[0].split("").reverse(),
              r = s.split(".")[1];
          t = "";
          for(i = 0; i < l.length; i ++ ) {
            t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length && (l[i+1]!='-')? "," : "");
          }
          temp = t.split("").reverse().join("") + "." + r;
          this.value = temp;
          return this.value;
        }
      }
    });
 
    function formatMN(e){
      this.value = this.value.replace(/[^\d\.\-]/g,"");
      $(this).attr("data-oral", parseFloat(e.target.value.replace(/[^\d\.-]/g, "")));
      //$("#moneyNum").attr("data-oral")獲取未格式化的金額
    }

其實我覺得,輸入框外的格式化更合理一些,大多數(shù)都是輸入框外部格式化的,我寫了個例子也拉出來吧。

輸入框外部格式化卡號
原理很簡單,就是隱藏一個顯示格式化的模塊,當(dāng)輸入框獲取焦點時顯示,失去焦點時隱藏即可。

頁面代碼:

<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();
});

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • 關(guān)于ES6尾調(diào)用優(yōu)化的使用

    關(guān)于ES6尾調(diào)用優(yōu)化的使用

    這篇文章主要介紹了關(guān)于ES6尾調(diào)用優(yōu)化的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • JavaScript實現(xiàn)帶播放列表的音樂播放器實例分享

    JavaScript實現(xiàn)帶播放列表的音樂播放器實例分享

    這篇文章主要介紹了JavaScript實現(xiàn)帶播放列表的音樂播放器實例分享,包括對播放完歌單之后沒有將要播放的歌曲的提示功能,需要的朋友可以參考下
    2016-03-03
  • js實現(xiàn)iframe框架取值的方法(兼容IE,firefox,chrome等)

    js實現(xiàn)iframe框架取值的方法(兼容IE,firefox,chrome等)

    這篇文章主要介紹了js實現(xiàn)iframe框架取值的方法,可兼容IE,firefox,chrome等瀏覽器.涉及JavaScript針對框架元素取值的相關(guān)技巧,需要的朋友可以參考下
    2015-11-11
  • js-FCC算法-No repeats please字符串的全排列(詳解)

    js-FCC算法-No repeats please字符串的全排列(詳解)

    下面小編就為大家?guī)硪黄猨s-FCC算法-No repeats please字符串的全排列(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • JavaScript實現(xiàn)彈出模態(tài)窗體并接受傳值的方法

    JavaScript實現(xiàn)彈出模態(tài)窗體并接受傳值的方法

    這篇文章主要介紹了JavaScript實現(xiàn)彈出模態(tài)窗體并接受傳值的方法,涉及JavaScript模態(tài)窗體的實現(xiàn)及基于URL的傳值操作技巧,需要的朋友可以參考下
    2016-02-02
  • JavaScript控制Session操作方法

    JavaScript控制Session操作方法

    JavaScript代表客戶端,而Session代表的是服務(wù)器(不知道這樣說大家是否能夠理解)接下來介紹JavaScript如何控制Session,感興趣的朋友可以了解下啊
    2013-01-01
  • layui實現(xiàn)下拉框三級聯(lián)動

    layui實現(xiàn)下拉框三級聯(lián)動

    這篇文章主要為大家詳細(xì)介紹了layui實現(xiàn)下拉框三級聯(lián)動,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 微信小程序適配iphoneX的實現(xiàn)方法

    微信小程序適配iphoneX的實現(xiàn)方法

    這篇文章主要介紹了微信小程序適配iphoneX的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • WebSocket中心跳檢測與斷開重連機(jī)制詳解

    WebSocket中心跳檢測與斷開重連機(jī)制詳解

    心跳檢測是指在WebSocket連接過程中定時向服務(wù)端發(fā)送和接收心跳消息,來確定當(dāng)前連接是否是正常狀態(tài)的檢測機(jī)制,斷開重連是指在WebSocket不正常斷開連接后,進(jìn)行重新連接的策略,下面我們就來看看這二者的具體實現(xiàn)吧
    2024-01-01
  • 基于JavaScript或jQuery實現(xiàn)網(wǎng)站夜間/高亮模式

    基于JavaScript或jQuery實現(xiàn)網(wǎng)站夜間/高亮模式

    這篇文章主要介紹了基于JavaScript或jQuery實現(xiàn)網(wǎng)站夜間/高亮模式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05

最新評論

白水县| 磴口县| 卓尼县| 陵川县| 涞水县| 嘉峪关市| 固阳县| 宜都市| 吴江市| 西丰县| 昭平县| 庄河市| 雅安市| 关岭| 石狮市| 喀什市| 平湖市| 章丘市| 黔江区| 会东县| 辽宁省| 连城县| 札达县| 永修县| 收藏| 富阳市| 繁昌县| 云梦县| 谷城县| 常宁市| 云阳县| 沐川县| 梁平县| 大竹县| 南川市| 西昌市| 定安县| 丰城市| 海林市| 阜城县| 万荣县|