使用角度格式化文本输入

时间:2015-03-16 12:49:58

标签: javascript angularjs angular-ui

我想格式化荷兰邮政编码的文本输入视图,该邮政编码始终以4位数字开头,以2个字母结尾。即:1234 AA。我想要一个文本输入来自动将数据格式化为这种格式。

我尝试使用ui.mask,如果你没有放入自定义占位符,它会起作用。我不太喜欢占位符____ __,因此我设置了1234 AA

http://plnkr.co/edit/5zC2pAM4UBNC046jwQDy

这样可行,但我的邮政编码可能以1开头。当我尝试输入我的示例 - 邮政编码1122 AB时,我不能。

我也搞乱了格式化程序和解析器,但是我无法让它工作。模型中的值应为1234AA,没有空格。

1 个答案:

答案 0 :(得分:1)

似乎在输入混乱中使用遮罩设置占位符。

你可以做的是创建一个指令,在ui-mask进程之后添加占位符,没有占位符并使用ui-mask的值代替:

创建此指令:

.directive("myPlaceholder",function($timeout){
    return{
        link: function(scope, element, attrs){          
          $timeout(function() {
            element.removeAttr('placeholder');
            element.attr('placeholder', attrs.myPlaceholder);
          });         

        }
    }
})

并将其设置为输入而不是实际的占位符:

<input type="text" ui-mask="9999 AA" ng-model="x" my-placeholder="1234 AA" />

在此处查看:

http://plnkr.co/edit/Hxj63BXDmldEpGJry8F9?p=preview