1

如何使电话输入字段在输入时看起来像“253.3445.9621”。以及如何使仅输入数字成为可能?

我希望模型中的值(或正确地说范围?混淆它们彼此()等于“25334459621”,但在用户输入时它应该是。我使用角度和引导程序。

<input id="contactn" name="contactn" placeholder="" class="input" type="text"
                           ng-model="data.contact">

谢谢!

4

3 回答 3

1

Angular UI-Mask是最好的解决方案。它基于经过严格审查的 jQuery Mask 插件:

于 2013-10-08T18:14:56.147 回答
1

我会使用指令:

HTML

<input type="text" ng-model="test" separator="number" />

指示

app.directive('separator', ['$filter', function($filter) {
    return {
        require: '?ngModel',
        link: function(scope, elem, attrs, ctrl) {
            if (!ctrl) return;


            ctrl.$formatters.unshift(function(a) {
              return $filter(attrs.format)(ctrl.$modelValue)
            });


            ctrl.$parsers.unshift(function(viewValue) {
              var plainNumber = viewValue.replace(/[^\d|\-+|\.+]/g, '');
              elem.val( $filter('number')(plainNumber) );
              return plainNumber;
            });
        }
    };
}]);

Fiddle

图片:

在此处输入图像描述

于 2013-10-08T18:03:30.957 回答
0

您应该研究创建自己的自定义指令 ,该指令使用ngModelController将输入限制为有效的电话号码格式。你可以去掉'。在验证格式后的指令内。

于 2013-10-08T18:06:49.753 回答