2016-12-22 17 views
5

に連結されたラジオボタンのために働いていない私は、2フィールドAngularJSエラーハンドラが入力

すべてと番号(これは、入力フィールドである)(plsは添付画像を参照してください) 中でラジオボタンを追加しようとしていますこれは、私は入力フィールドのエラーハンドラを追加しようとしています。私は数字 "/^[0-9] {1,5} $ /"(1から5まで)のパターンを持っています。パターンに不一致がある場合は、エラーを表示します。

<div id="_work"> 
    <md-input-container class="md-input-has-value"> 
     <label>Work is funnnnn</label> 
     <md-radio-group layout="row" ng-model="data.group" ng-change='changecolor(data.group)'> 
      <md-radio-button value="All Color" class="md-primary"> All </md-radio-button> 
      <md-radio-button value="Number" class="md-primary"><LEFT EMPTY></md-radio-button> 
     </md-radio-group> 
     <md-input-container md-no-float style="float: right; margin: 0px;"> 
      <input name="num" ng-model="number" placeholder="5" type="text" ng-pattern="/^[0-9]{1,5}$/" class="numberrr" disabled> 
      <div ng-messages="num.$error" role="alert"> 
       <div ng-message="pattern">Looks like it's not a number?</div> 
      </div> 
     </md-input-container> 
    </md-input-container> 
</div> 

Radio button link (Image)

今の問題は、私がエラーMSGを取得することはできませんよ、なぜ私は言葉や数字以上の5桁を入力すると、知らないです。どんなplsでも私が間違っているところを助けることができます。

See this there is no error message displayed (Image)

答えて

1

あなたの正規表現の形式は少しオフになっています。文字列がng-patternに渡されると、それは自動的に^と$でラップされるため(documentation参照)、これらの文字は必要ありません。また、先頭と末尾にスラッシュは必要ありませんが、正規表現を文字列で囲む必要があります。あなたは1から5まで数字のみを一致させるためにしようとしている場合は最後に、あなたは次のようにあなたのNGパターンを簡略化することができます。

ng-pattern="'[1-5]'" 

をしかし、あなたは1から5までの数字の任意の数を一致させたい場合は、次のいずれかを使用する必要があります:

// zero or more digits, from 1-5 
ng-pattern="'[1-5]*'" 

// one or more digits, from 1-5 
ng-pattern="'[1-5]+'" 
関連する問題