1

入力時に「253.3445.9621」のような電話入力フィールドを作成するにはどうすればよいですか。また、数字のみの入力を可能にする方法は?

モデルの値(またはスコープと言うのが正しいですか?それらを互いに混同します())が「25334459621」に等しいことを望みますが、ユーザーの入力では、とある必要があります。角度とブートストラップを使用しています。

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

ありがとうございました!

4

3 に答える 3

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 に答える