Angularjs 创建输入掩码

2023-12-09

我正在尝试创建一个指令来为我的输入创建自定义掩码。我知道还有其他库可以使用,但有时我需要根据公司需求进行自定义输入(例如“OS.012-08765”),所以我宁愿创建自己的指令。

到目前为止,我能够在我需要的模式上格式化数字,但不能在输入上格式化,只能在模型上格式化。对于这个例子,我将使用金钱输入,因为它更容易使用(我认为)。这是我正在使用的代码:

function myMoney() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, element, attr, ngModelCtrl) {
            ngModelCtrl.$formatters.push( formatInput );
            ngModelCtrl.$render = renderViewValue;
            ngModelCtrl.$parsers.push( parseOutput );


            function formatInput( value ) {
                value = formatNumber(value);
                return value;
            }
            function parseOutput( value ) {
                value = formatNumber(value);
                return value;
            }
            function renderViewValue() {
                element.html( ngModelCtrl.$viewValue );
            }

            function formatNumber(value) {
                if(!value) {
                    value = '000';
                }

                var checkValue = value.replace(/[^0-9\.]/g, '');
                if(checkValue != value) {
                    value = checkValue;
                }

                value = value.toString();

                if(value.length < 3) {
                    value = ('000'+value).slice(-3);
                }

                var 
                    firstChar = value.slice(0, value.length-2),
                    lastChar  = value.slice(-2),
                    firstChar = Number(firstChar).toLocaleString(),
                    finalChar = '$'+firstChar+','+lastChar;

                return finalChar;
            }
        }
    }
}

这是一个带有代码的 plunkr:http://plnkr.co/edit/UjZkPFL0V4FRrDUL9jAJ?p=preview


主要问题是输出在哪里,如果您开始在输入上键入,则该值没有掩码,只是数字。但模型有合适的面具。

因此,基于此,我有两个主要问题:

  • 第一:我想反转这些结果。我想在文本框中输入内容并将掩码放在文本框中,而模型只是普通数字(没有掩码)。
  • 第二:如果我创建一个按钮来更新模型上的值,它不会在掩码内格式化,它会保持纯文本。

我该如何解决这些问题?


尝试使用 ui mask,https://htmlpreview.github.io/?https://github.com/angular-ui/ui-mask/master/demo/index.html, enter AA.999-99999 under 掩码定义字段来匹配您的模式。

<input type="text" 
       ng-model="serviceOrderNumber" 
       ui-mask="AA.999-99999"  
       ui-mask-placeholder 
       ui-mask-placeholder-char="_"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angularjs 创建输入掩码 的相关文章

  • 如何将大数据传递给网络工作者

    我正在研究网络工作人员 并将大量数据传递给网络工作人员 这需要很多时间 我想知道发送数据的有效方式 我尝试过以下代码 var worker new Worker js2 js worker postMessage buffer buffer
  • 在画布中心写入 (0,0)-HTML5

    I m currently developing a drawing app which allows the user to click and drag to determine the size of the shape and al
  • javascript 可以从父页面访问 iframe 元素吗?

    我的页面上有 iframe iframe 和父页面位于不同的域中 父页面上的 javascript 代码可以访问此 iframe 内的元素吗 如果页面来自不同的域 则不应该这样做 浏览器安全沙箱应该阻止这种类型的访问 当两个页面来自不同的时
  • 如何在 js.erb 中使用 Ruby 代码?

    我可以使用以下方式在模态中渲染部分内容escape javascript在js erb文件代码中 body append my modal modal show 但是 我似乎无法获得以下结果 console log ERB 将输出一个纯字符
  • 如何在 Jasmine JS 中重用 beforeEach/afterEach?

    当使用 JasmineJS 编写测试时 我有许多具有类似 beforeEach afterEach 代码的测试 有没有办法使用 JasmineJS 测试套件实现继承模型 我可以将所有测试分组为一个describe但在这种情况下 我将以包含所
  • 获取访客的 Optimizely A/B 测试和变化

    当我在网站上运行实验时 我希望能够找出当前访问者看到的测试和变体 我无法找到如何做到这一点优化Javascript API https www optimizely com docs api 您可以获得第一个正在运行的实验的 ID 假设您有
  • 如何使用React Native在屏幕上绘图?

    我正在尝试在 React Native 中实现一个 Android 绘图应用程序 我正在使用 PanResponder 但我不知道如何获取用户触摸的部分的坐标 我尝试过使用react native svg但我不知道该放在哪里PanRespo
  • 防止 Node.js 中的 SQL 注入

    是否有可能以与 PHP 具有防范 SQL 注入的预准备语句相同的方式防止 Node js 中的 SQL 注入 最好使用模块 如果是这样 怎么办 如果不 有哪些例子这可能会绕过我提供的代码 见下文 一些背景 我正在制作一个 Web 应用程序
  • 禁用拉斐尔论文上的浏览器上下文菜单

    我有一篇拉斐尔论文定义为R1 Raphael 0 0 800 600 我想在本文中禁用上下文菜单 以便我可以捕获鼠标右键单击事件 我没有这样的Raphael someDiv 800 600 禁用 div 的 oncontextmenu 属性
  • 有效 JSON 上的 Firefox JSON“格式不正确”错误

    我在 Firefox 中收到以下错误消息 Error not well formed Source File http school courses booking add php 1287657494723 Line 1 Column 1
  • 如何在 Chrome 中将 Set 转换为数组?

    如何将集合转换为数组 https stackoverflow com questions 20069828 how to convert set to array给出了将 Set 转换为 Array 的三个答案 目前在 Chrome 浏览器
  • ECMAScript 中定义的内部属性是什么?

    什么是内部属性 http es5 github com x8 6在 ECMAScript 中定义为 规格是什么意思 该规范使用各种内部属性来定义 对象值的语义 这些内部属性不是 ECMAScript 语言 它们是由本规范定义的 纯粹用于说明
  • 在 json 对象中执行 javascript 代码?

    有远吗 所以像这样 key1 val1 key2 val2 some code document getElementById someid innerHTML test 那么 some code 会在没有任何用户干预的情况下执行吗 No
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • jQuery onclick 隐藏其父元素[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想隐藏 li tag on a 使
  • 重复 Pinterest Facebook 邀请功能

    I m trying to duplicate Pinterest s Invite Friends functionality In case you haven t seen what it looks like it looks li
  • 过滤数据表中的行

    我目前的 JQuery 插件 DataTables 工作正常 并且我在页面顶部插入了一个按钮来进一步过滤列表 我还使用了 DataTables 内置的搜索栏 我希望按钮向下过滤表格 并只显示包含特定值的行 下面是我一直在做的事情 但似乎没有
  • 为什么我的数据没有存储到我的 Firebase 实时数据库中?

    我正在尝试为网络应用程序制作一个注册页面 这会将数据发送到 firebase 数据库 我已阅读官方 firebase 文档并按照说明写入数据 但什么也不会写 在我的数据库控制台中 它显示的所有内容都是空 而不是我的数据 我没有收到控制台错误
  • execCommand 的替代品

    我希望创建一个所见即所得编辑器 使用 jQuery 作为框架 我可以使用不同的方法来简化生产 我现在确实有一个正在工作的编辑 而且运作良好 我使用 iFrame 并将其设计模式设置为打开并从那里开始 然而 有一些事情困扰着我 以更改所选文本
  • 即使切换它时,hasClass 也始终返回 false

    我有以下代码

随机推荐

  • 连接 ODP.Net 时出现 ORA-01005 错误

    我尝试使用以下代码访问 Oracle 数据库 版本 10 2 0 4 0 但在调用其 open 方法时 连接会引发 ORA 01005 给出空密码 登录被拒绝 异常 var connBuilder new OracleConnectionS
  • ChromeDriver driver = new ChromeDriver(); 之间有什么区别和 WebDriver 驱动程序 = new ChromeDriver();

    有什么区别 ChromeDriver driver new ChromeDriver and WebDriver driver new ChromeDriver 如果我在 Selenium Java 中使用这些代码 我会得到相同的输出吗 我
  • 错误:[Header] 不是 组件

    尽管我努力修复它们 但我仍然遇到上述错误 终端声称应用程序编译没有问题 但浏览器上没有显示任何内容 我在查看控制台时发现了错误 以下是错误所指的 Header 组件的 index js 文件 import React from react
  • 使用 pywin32 库中的 win32evtlog 写入 Windows 事件日志

    我有一个简单的 python 脚本 将在 Windows 服务器上运行 我想将整个脚本中的特定事件记录到 Windows 事件日志中 有谁有一个简单而精确的写入 Windows 事件日志的示例 以便我可以从事件查看器查看该事件 我已阅读 p
  • SQL-收缩数据库日志文件

    我正在尝试缩小我的数据库日志文件 我尝试过运行 USE databasename BACKUP log databasename WITH truncate only DBCC shrinkfile databasename log 1 我
  • 如何定义一个将函数文字(带有隐式参数)作为参数的函数?

    我希望能够在这些行上做一些事情 不会编译 def logScope logger Logger operation implicit l Logger gt Unit code operation logger code def opera
  • 在MyBatis中插入子对象

    我有一个非常简单的对象图 我想使用 MyBatis 将其存储在数据库中 如果我创建一个全新的对象图 具有两个细节的 BatisNode 如何编写代码以确保创建子对象 详细信息如下 public class BatisNode protect
  • 如何解决错误 1060:使用视图 -> 创建视图重复列名

    我正在尝试通过连接 Sakila 数据库中的一些表 在 MySQL 中 来创建视图 https dev mysql com doc sakila en 即我要加入付款 员工和客户 并显示客户姓名 员工姓名 付款id和金额 我右键单击 视图
  • 使用 iText 生成 pdf 的锚定方法的相对路径

    我使用 iText 生成 PDF 并使用以下代码创建锚点 String newPath file newPath newPath completePath trial setAnchor newPath The trial对象属于类型Chu
  • Htaccess:从 URL 添加/删除尾部斜杠

    我的网站运行一个名为 gt WSS 壁纸脚本的脚本 我的问题 gt 我一直在尝试强制删除或在 URL 末尾添加尾部斜杠 以防止重复内容并清理我的 URL 我已经尝试了各种方法并尝试了我能想到的一切并从互联网上加载 但还没有这样的运气 这可能
  • Nuxt.js 与 TypeScript:类型“y”上不存在属性“x”

    我是 Vue 和 Nuxt 的新手 目前正在制作 TypeScript 教程 它给我带来了一堆错误Property x does not exist on type y 下面是一个例子 ERROR in components AboutMe
  • 带隐私的伪经典继承?

    In JavaScript 好的部分克罗克福德认为 使用伪经典继承模式的缺点之一是它公开公开实例变量 例如 var Ball function width color this width width this color color va
  • javascript:如何在没有jquery的情况下编写$(document).ready之类的事件

    在 jquery document ready function 或 function 中 如果没有 jquery 我怎么能做同样的事情 并且我需要浏览器兼容 并允许附加多个函数 注意 dom准备好 窗口onload 这就是 jQuery
  • 如何从给定字段长度的固定长度文本文件创建 DataFrame?

    我正在阅读固定位置文件 文件的最终结果存储在字符串中 我想将字符串转换为DataFrame进一步处理 请帮助我解决这个问题 下面是我的代码 输入数据 PRGREFNBR 值 01 11 苹果 真 0 56 02 12 梨 FALSE1 34
  • 在 php 和 Ruby On Rails 应用程序之间传递身份验证

    我有一个简单的 Ruby on Rails 应用程序 我想将其与现有的 php 网站集成 我只希望通过 php 应用程序身份验证的用户能够访问我的 Ruby on Rails 应用程序 它应该对用户显示为同一域中的同一网站 但如果我选择 它
  • 将 C++ 类型信息保存到文件中以供跨程序调用使用

    Edit 如果需要 可以使用更多上下文来突出显示实际问题 我想实现以下方法 template
  • 在 HTML5 中无限循环加载视频

    我希望在 HTML5 页面中放置一个视频 该视频将在页面加载时开始播放 完成后 不间断地循环回到开头 视频应该还可以NOT有任何与之关联的控件 并且要么与所有 现代 浏览器兼容 要么可以选择填充 以前我会通过以下方式完成此操作Flash a
  • 选择 blob 上的不同值

    有没有办法验证 Oracle 数据库中更多行中 blob 中的值是否相同 blob 是同一列 我将 blob 的大小存储在另一列中 但我需要知道该值是否也相等 存储的值是序列化对象 我建议添加另一列 其中包含hashblob 值的 当您存储
  • 在SVG线性渐变停止偏移中绑定Angular2值?

    我想在线性梯度停止偏移中使用绑定 angular2 值 但它给了我错误 有人可以告诉我如何在线性渐变的停止偏移中绑定 angular2 值 如下所示 测试组件 ts import Component EventEmitter ViewEnc
  • Angularjs 创建输入掩码

    我正在尝试创建一个指令来为我的输入创建自定义掩码 我知道还有其他库可以使用 但有时我需要根据公司需求进行自定义输入 例如 OS 012 08765 所以我宁愿创建自己的指令 到目前为止 我能够在我需要的模式上格式化数字 但不能在输入上格式化