map*_*ap7 5 mask angularjs angular-ui
我使用angular-ui mask模块在日期字段上设置了掩码,如下所示:
<input type="text"
id="date"
ng-model="transaction.date"
ui-mask="99/99/9999" />
Run Code Online (Sandbox Code Playgroud)
如果我在该字段中有30/05/2013,并且想要将其更改为10/05/2013,只需在开头添加一个'1',它就会将所有字符推到一起,因此它变为13/00/5201.
有没有办法强制ui-mask覆盖插入它的角色?(这样可以避免某人点击'删除'然后再出现这个角色.
示例:http://jsfiddle.net/5NbD7/ 如果您在我的示例前面键入'30',您将最终得到30/01/0120我宁愿它覆盖字符并产生30/01/2010
我不知道有更简单的方法,但你尝试以下方法:
https://rawgithub.com/angular-ui/ui-utils/master/modules/mask/mask.js
//Update Values并将此代码放在下面):...
// Update values
if (oldValueUnmasked !== "" && oldValueUnmasked!==valUnmasked && !isDeletion) {
var charIndex = maskCaretMap.indexOf(caretPos);
if (charIndex === -1) {
charIndex = maskCaretMap.indexOf(caretPos+1);
}
valUnmasked=valUnmasked.substr(0,charIndex).concat(oldValueUnmasked.substr(charIndex,valUnmasked.length));
}
Run Code Online (Sandbox Code Playgroud)
...
现在,在更新值之前,mask 将根据光标(插入符号)的位置对旧值中的字符和新值中的字符进行串联。
它绝不是一个可靠的解决方案,但它应该让您知道如果您想更多地自定义输入或检查此更改不会破坏其他任何内容,应该在哪里查找。
小提琴: http: //jsfiddle.net/CALvj/
| 归档时间: |
|
| 查看次数: |
4275 次 |
| 最近记录: |