亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Angular.js組件之input mask對input輸入進行格式化詳解

2019-11-19 16:07:18
字體:
來源:轉載
供稿:網友

前言

最近因為項目的需要,經常有一些對input輸入進行格式化的需求,以前做的時候在js中寫指令進行處理,但是這樣又要在js或者在java代碼中將請求的數據進行還原,很是麻煩,于是在網上看到了jquery的inputmask組件,覺得很好用,在項目中寫出指令,用起來很方便。

方法如下:

在項目中引入jquery和jquery-inputmask,然后在項目中寫指令,如下:

define(['./module'], function (directives) { 'use strict'; directives.directive('inputMask', function ($timeout) { return {  restrict: 'EA',  require: 'ngModel',  link: function (scope, elm, attrs, ngModel) {  var applyModelEvents = [ "oncomplete", "onKeyUp", "onKeyValidation" ], maskType = "mask";  if (attrs.formatOption) {   var formatOption = scope.$eval(attrs.formatOption);   if (formatOption.parser) {   ngModel.$parsers.push(formatOption.parser);   }   if (formatOption.formatter) {   ngModel.$formatters.push(formatOption.formatter);   }   if (formatOption.isEmpty) {   ngModel.$isEmpty = formatOption.isEmpty;   }  }  var applyModel = function (fun) {   return function () {   (function (args) {    $timeout(function () {    var viewValue = elm.inputmask('unmaskedvalue');    if (viewValue !== ngModel.$viewValue) {     ngModel.$setViewValue(viewValue);    }    if (fun) {     fun.apply(scope, args);    }    });   })(Array.prototype.slice.call(arguments));   };  };  var extendOption = function (option) {   var newOption = angular.extend({}, option);   angular.forEach(applyModelEvents, function (key) {   newOption[key] = applyModel(newOption[key]);   });   return newOption;  };  if (attrs.inputMask) {   maskType = scope.$eval(attrs.inputMask);  }  if (maskType) {   if (angular.isObject(maskType)) {   var maskOption = extendOption(maskType);   $timeout(function () {    elm.inputmask(maskOption);   });   } else {   var maskOption = extendOption(scope.$eval(attrs.maskOption) || {});   $timeout(function () {    elm.inputmask(maskType, maskOption);   });   }  }  elm.bind("blur", function(){   $timeout(function () {   if(attrs.isMask){       }else{    ngModel.$setViewValue(elm.inputmask('unmaskedvalue'));   }   });  });  } } });});

如需要將銀行卡號按銀行卡格式顯示:

html:

<input class="form-control" id="cardNo" name="cardNo" type="text" ng-model="cardNo" input-mask="cardOption"/>

angular controller中cardOption:

 $scope.cardOption = {   mask: function () {    return ["9999 9999 9999 9999 [999]"];   }};

如果日期表示的時候,將string直接轉為data類型:

$scope.dateFormatOption = {   parser: function (viewValue) {   return viewValue ? new Date(viewValue) : undefined;   },   formatter: function (modelValue) {   if (!modelValue) {    return "";   }   var date = new Date(modelValue);   return (date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate()).replace(//b(/d)/b/g, "0$1");   },   isEmpty: function (modelValue) {   return !modelValue;   }  };

html代碼:

<input type="text" ng-model="test1" input-mask="'y-m-d'" format-option="dateFormatOption"/>

另外,指令中的一些屬性需要注意:

inputMask主要是制定頁面展示的樣式:如展示銀行卡號的例子;

 1、format-option主要是指定在格式化的時候解析、格式化和為空的時候,數據的格式;如日期處理,最后進行請求的時候就是傳入data類型;

 2、isMask主要是指定頁面展示的是否是傳入后臺請求的數據,如卡號解析為XXXX XXXX XXXX XXXX,如果isMask為true則傳入后臺則為XXXX XXXX XXXX XXXX,否則為XXXXXXXXXXXXXXXX。

  3、maskOption:指定頁面展示的樣式,同時也可以用回調,在完成和驗證的時候做一些處理動作。如下:

$scope.testoption = {  "mask": "99-9999999",  "oncomplete": function () {   console.log();   console.log(arguments,"oncomplete!this log form controler");  },  "onKeyValidation": function () {   console.log("onKeyValidation event happend! this log form controler");  }  }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美午夜片欧美片在线观看| 欧美日韩亚洲一区二区三区| 亚洲一区二区三区香蕉| 亚洲综合精品一区二区| 啊v视频在线一区二区三区| 亚洲人成网站777色婷婷| 97国产真实伦对白精彩视频8| 精品国内亚洲在观看18黄| 国产精品美乳一区二区免费| 国产999精品久久久| 美日韩精品视频免费看| 美女久久久久久久| 国内精品久久久久久久| 久久久久久有精品国产| 中文字幕精品国产| 久久免费视频观看| 久久人人爽人人| 亚洲美腿欧美激情另类| 亚洲精品在线视频| 精品无码久久久久久国产| 日韩久久精品电影| 国产精品入口尤物| 亚洲精品国产精品国自产在线| 91国内精品久久| 欧美特级www| 亚洲无亚洲人成网站77777| 国产91精品久久久久久| 亚洲人成电影网站色xx| 国产精品久久激情| 亚洲第一网中文字幕| 欧美一区二区三区图| 91情侣偷在线精品国产| 狠狠综合久久av一区二区小说| 欧美成人剧情片在线观看| 国产ts人妖一区二区三区| 黑人巨大精品欧美一区二区三区| 日韩欧美成人精品| 久久伊人色综合| 美日韩精品免费视频| 成人激情视频在线播放| 亚洲综合一区二区不卡| 成人黄色免费片| 日韩欧美亚洲范冰冰与中字| 色噜噜久久综合伊人一本| 国产精品毛片a∨一区二区三区|国| 亚洲综合精品一区二区| 亚洲欧美成人精品| 国产精品7m视频| 日韩欧美亚洲一二三区| 精品视频偷偷看在线观看| 日韩精品视频三区| 欧美日韩国产成人高清视频| 亚洲激情在线视频| 欧美日韩亚洲高清| 欧美高清videos高潮hd| 91精品国产777在线观看| 国产91色在线|| 丝袜美腿精品国产二区| 久久精品青青大伊人av| 国产精品成人一区二区| 亚洲一区美女视频在线观看免费| 久久97久久97精品免视看| 亚洲国产毛片完整版| 精品国产一区二区三区在线观看| 一区二区三区日韩在线| 国产精品美女www爽爽爽视频| 中文字幕在线观看亚洲| 亚洲美女动态图120秒| 日韩精品在线看| 欧美日韩国产精品一区二区不卡中文| 国产精品露脸av在线| 久久香蕉国产线看观看av| 日本精品免费一区二区三区| 大胆欧美人体视频| 最近中文字幕2019免费| 午夜精品国产精品大乳美女| 国产精品亚洲片夜色在线| 成人免费激情视频| 欧美精品电影免费在线观看| 国产精品高清在线| 日韩av日韩在线观看| 亚洲日韩中文字幕| 欧美精品一区二区三区国产精品| 成人97在线观看视频| 欧美巨猛xxxx猛交黑人97人| 亚洲欧美综合图区| 91精品久久久久久久| 91精品免费视频| 欧美日韩成人免费| 欧美激情在线视频二区| 久久香蕉频线观| 日韩欧美国产网站| 一本色道久久综合亚洲精品小说| 国产成人中文字幕| 久精品免费视频| 久久久国产一区| 日韩毛片中文字幕| 精品国产成人av| 亚洲第一黄色网| 欧美精品18videos性欧美| 国产精品旅馆在线| 精品夜色国产国偷在线| 亚洲精品一区二区网址| 国产极品jizzhd欧美| 国产视频福利一区| 亚洲影院高清在线| 欧洲成人在线视频| 国产在线观看精品| 成人在线国产精品| 粉嫩老牛aⅴ一区二区三区| 日本免费久久高清视频| 欧美极品美女视频网站在线观看免费| 亚洲春色另类小说| 美女999久久久精品视频| 日韩美女在线看| 欧美日韩国产精品一区二区三区四区| 亚洲欧美色婷婷| 国产精品18久久久久久麻辣| 成人黄色在线观看| 中文字幕日韩在线视频| 狠狠色狠狠色综合日日小说| 一道本无吗dⅴd在线播放一区| 久热国产精品视频| 日韩av电影手机在线| 亚洲午夜未满十八勿入免费观看全集| 中文日韩在线视频| 在线中文字幕日韩| 91天堂在线视频| 亚洲国产精品嫩草影院久久| 97婷婷大伊香蕉精品视频| 国产精品成人av在线| 亚洲精品成人久久| 国产乱肥老妇国产一区二| 欧美最猛性xxxxx免费| 色青青草原桃花久久综合| 欧美黑人巨大xxx极品| 国产在线精品播放| 久久精品在线播放| 久久久国产成人精品| 永久免费毛片在线播放不卡| 欧美在线一区二区三区四| 久久99国产精品久久久久久久久| 精品激情国产视频| 在线视频一区二区| 中文字幕在线亚洲| 精品久久久久久久中文字幕| 91精品中国老女人| 色偷偷噜噜噜亚洲男人| 在线观看欧美日韩国产| 国产日韩欧美在线视频观看| 欧美午夜片在线免费观看| 国产精品久久久久高潮| 日韩三级成人av网| 国产欧美日韩免费| xvideos国产精品| 亚洲成人黄色在线观看| 亚洲成人动漫在线播放| 国产色视频一区| 日本高清不卡的在线| 欧美最猛性xxxxx(亚洲精品)| 91精品久久久久久久久久入口| 欧美午夜片欧美片在线观看| 日韩大胆人体377p| 日韩日本欧美亚洲|