2016-08-29 11 views
1

入力フィールドの型番号に小数点(。)を書く場合、どうすればエラーを表示できますか。私はng-patternを使用していますが、1回の完全停止が入力されたときは検証しませんでした。角度jsのタイプ番号を持つ入力フィールドの単一小数点(。)を禁止する方法

例:私が数字「9988587146」を入力した場合。それはエラーを表示しなかったか、または2ドットを書くとngパターン関数を呼び出すと、エラーが表示されます。例のため "9988587146 .." Everthingは、単一のドットを除く微すべての検証作業(。)入力フィールドに HTML

<input type="number" name="number" class="form-control" placeholder="Phone Number" ng-maxlength="10" ng-minlength="10" limit-to="10" step="0" ng-pattern="checkPattern()" ng-model="user.number" required/> 

私のチェックパターン機能。

var isnum = /^[0-9]{10,10}$/.test($scope.user.number); 
return isnum; 
+0

あなたがregex-を使用する場合は、 ''タイプ= "テキスト" を使用する必要がありますベースの検証。 –

+0

WiktorStribiżewしかし、私はアンドロイドの数字のキーボードを表示したい。 – user3454799

+0

入力フィールドに単一ドット(。)以外のすべての検証が有効です。 – user3454799

答えて

2

あなたのコードに変更する必要がある2つのものがあります。

  1. ngPatternは、その値としての機能を受け入れません。 regexまたは正規表現に評価される文字列だけが有効な値です。
  2. @WiktorStribiżewと同様に、numberタイプの入力はpattern validationで動作しません。 textsearchtelurlemailまたはpasswordのみパターンを使用して検証できます。とにかく電話番号を検証しようとしているので、タイプtelを使用することをお勧めします。
  3. テンプレートで

、使用:

<input type="tel" ng-pattern="checkPattern" name="number" class="form-control" placeholder="Phone Number" ng-maxlength="10" ng-minlength="10" limit-to="10" step="0" ng-model="user.number" required/> 

とコントローラで:

$scope.checkPattern = /^[0-9]{10,10}$/; 
+0

ありがとう@Yarons。それは魅力のように働く – user3454799

関連する問題