2017-03-07 7 views
0

最近、最近Angular Giving Formアプリケーションを採用しました。私はng-patternを使用して電子メールフィールドの検証を実行しており、ngMessagesを使用してぼかしのエラーを表示しています。しかし、検証がうまくいくのは確かですが、ユーザーが電子メールを変更して最初の削除の一部を削除する必要があると判断した場合、$ validとして渡すと、電子メールの最後の文字は削除されますが、フィールド全体が最初から最初から開始するように強制します。 NGパターンのための正規表現は、変数$ scope.emailre電子メールの妥当性検査で削除のエラーが発生する

とコントローラの範囲内に設定されている

ファイルはここに配置するために大に多くのですが、ここで私が働いているサイトへのリンクです私の顧客。 https://epiqa.moodyglobal.org/corporate/

角度コントローラのスニペット:HTMLフォームの

myApp.controller('mainCtrl', function($scope, localStorageService, $http) { 
$scope.emailre = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 

スニペット:

<div class="row form-group"> 
    <div class="col-sm-6"> 
     <div> 
      <label class="label" for="txt_donorEmail">E-mail:</label> 
      <input ng-class="{ 'submitted-error' : givingForm.email.$invalid && submitted }" ng-model="email" type="text" id="email" name="email" class="textbox required full form-control" maxlength="50" ng-pattern="emailre" required /> 
     </div> 
     <div ng-messages="givingForm.email.$error" ng-if="givingForm.email.$touched || submitted"> 
      <div class="errorText" ng-message="required">This field is required</div> 
      <div class="errorText" ng-message="pattern">Enter a valid email</div> 
     </div> 
    </div> 
</div> 

私は= "電子メール" を入力するタイプ= "テキスト" からの入力タイプを変更しようとしたが、ユーザーが2つのピリオド(。)を入力するといつでも、フィールドはすぐに削除されます。

ご挨拶をお待ちしております。

答えて

0

動作が角度のドキュメントでは、このセクション

$scope.$watch('email', function(value){ 
    localStorageService.set('email',value); 
    $scope.emailValue = localStorageService.get('email'); 
}); 

によって引き起こされる

検証は値が無効であると判断した場合ngModelのデフォルトの動作は、モデルの値はundefinedに設定されていることです。 allowInvalidプロパティをtrueに設定すると、値が無効であってもモデルは更新されます。

無効なメールをlocalStorageに保存するかどうかはわかりませんが、おそらく、値が有効なときにチェックのみを追加することができます。

関連する問題