博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular限制输入框整数和小数的指令
阅读量:6611 次
发布时间:2019-06-24

本文共 3446 字,大约阅读时间需要 11 分钟。

(function () {    'use strict';    angular.module('common')        .directive('numFormat', function () {            return {                restrict: 'A',                require: 'ngModel',                scope: {                    isInt: '@',                    decimal: '@',                },                controller: ['$scope', function ($scope) {                }],                link: function (scope, $element, $attr, ngModelCtrl) {                    function format() {                        if (ngModelCtrl.$modelValue === null) {                            ngModelCtrl.$setViewValue(null);                            ngModelCtrl.$render();                        } else if ( isNaN(ngModelCtrl.$modelValue) || ngModelCtrl.$modelValue === undefined) {                            ngModelCtrl.$setViewValue(null);                            $element.val(null);                            ngModelCtrl.$render();                        } else {                            if (scope.isInt === 'true') {                                var f = Math.round(ngModelCtrl.$modelValue * 100) / 100;                                var s = f.toString();                                ngModelCtrl.$setViewValue(parseInt(s));                                ngModelCtrl.$render();                            } else if (scope.decimal) {                                // 保留任意位小数                                var s = ngModelCtrl.$modelValue.toString();                                // var s = viewValue.length > modelValue.length ? viewValue:modelValue;                                var rs = s.split('.');                                if (rs.length > 1) {                                    if (rs[1].length > parseInt(scope.decimal)) {                                        rs[1] = rs[1].slice(0, scope.decimal)                                        ngModelCtrl.$setViewValue(parseFloat(rs.join('.')));                                    }                                    var viewValue = ngModelCtrl.$viewValue.toString();                                    viewValue = viewValue.split('.')                                    if (viewValue[1].length > parseInt(scope.decimal)) {                                        viewValue[1] = viewValue[1].slice(0, scope.decimal)                                        ngModelCtrl.$setViewValue(parseFloat(viewValue.join('.')));                                    }                                }                                ngModelCtrl.$render();                            } else {                                // 最多保留两位小数                                var f = Math.round(ngModelCtrl.$modelValue * 100) / 100;                                console.log('numform:',f)                                var s = f.toString();                                var rs = s.indexOf('.');                                if (rs >= 0) {                                    console.log('numform1:',s)                                    ngModelCtrl.$setViewValue(parseFloat(s));                                    ngModelCtrl.$render();                                } else {                                    // ngModelCtrl.$setViewValue(parseInt(s));                                }                            }                        }                    }                    $element.keyup(format)                }            }        })})();

使用:

 

转载于:https://www.cnblogs.com/kaibo520/p/10410518.html

你可能感兴趣的文章
vs2010 vs2013等vs中如何统计整个项目的代码行数
查看>>
【python系列】python初识
查看>>
远程连接mysql数据库
查看>>
大数据(6) - MapReduce简易介绍入门
查看>>
关于Struts2中提交出现乱码的问题
查看>>
小调网 经典电影 豆瓣评分 tampermonkey脚本
查看>>
Java温故而知新(5)设计模式详解(23种)
查看>>
Spring实战——Profile
查看>>
Cmake 编辑opencv dll 问题
查看>>
IDL 使用数组
查看>>
C#学习笔记2
查看>>
LCLFramework架构必须要知道的知识
查看>>
[公益课程]Spring Boot 2.x 实战入门
查看>>
Centos7.5修改双系统启动顺序
查看>>
css 补漏
查看>>
Common ways to tell time
查看>>
C++ 无法从void 转换为 LRESULT
查看>>
[原]Unity3D深入浅出 - 光源组件(Light)
查看>>
数据库对象(视图,序列,索引,同义词)【weber出品必属精品】
查看>>
ubuntu下安装和配置java开发环境
查看>>