2016-07-06 10 views
2

https://github.com/TheSharpieOne/angular-validation-matchからの角度検証一致を使用しようとしています。どのタイプのフォーム検証をも引き起こすために、一致条件をトリガーすることができません。今のところパスワードが異なっていても、パスワードが一致しないことは示されません。これは何らかの理由がありますか?以下はhtmlです。Angular JS |角検定一致のパスワード

<form name="vm.changeForm" 
     ng-submit="vm.changeForm.$valid && vm.attemptChange(password);" 
     > 
    <md-input-container class="md-block"> 
     <input required 
      type="password" 
      placeholder="New Password" 
      name="passwordName" 
      ng-model="password" 
      /> 
     <div ng-messages="vm.changeForm.passwordConfirm.$error" 
      ng-if="vm.changeForm.passwordConfirm.$touched" 
      role="alert" 
      > 
     <div ng-message="required">Please enter a password.</div> 
     </div> 
    </md-input-container> 
    <md-input-container class="md-block"> 
     <input required 
      type="password" 
      placeholder="Confirm New Password" 
      name="myConfirmField" 
      ng-model="passwordConfirm" 
      match="password" 
      /> 

     <div ng-show="vm.changeForm.passwordConfirm.$error.match" 
      ng-if="vm.changeForm.passwordConfirm.$touched" 
      role="alert">Passwords do not match</div> 


    </md-input-container> 
    </form> 

答えて

2

注:

  1. あなたは、単にシンプルng-ifに、NG-ifと必要はありません同じdivにNG-ショーを、することができます使用しています。

  2. ng-modelの代わりにnameプロパティを使用する必要があります。あなたのinput名前がmyConfirmFieldあるので、

だから、あなたはこれを交換する必要があります。

<div ng-show="vm.changeForm.passwordConfirm.$error.match" ng-if="vm.changeForm.passwordConfirm.$touched" role="alert">Passwords do not match</div> 

用:

<div ng-if="vm.changeForm.myConfirmField.$touched && vm.changeForm.myConfirmField.$error.match" role="alert">Passwords do not match</div> 

は、その後、あなたが期待される結果を取得する必要があります。