1

こんにちは、登録フォームを作成しています。ユーザーが入力したパスワードが一致するかどうか、angular を使用して確認したいと思います。すべての検証が機能します (必須、最小および最大長) が、パスワードが一致しないというエラーが常に発生します。

私のコードは次のとおりです

<div class="control-group">
<label class="control-label">Password</label>
<div class="controls" ng-class="{ 'has-error': addCustomerForm.password_1.$touched && addCustomerForm.password_1.$invalid }">
    <input type="text" name="password_1" class="form-control input-lg" ng-model="newCustomerInfo.password_1" ng-minlength="4" ng-maxlength="12" required>
    <div ng-messages="addCustomerForm.password_1.$error" ng-if="addCustomerForm.password_1.$touched">
        <div ng-message="required">This field is required</div>
        <div ng-message="minlength">The password is too short.</div>
        <div ng-message="maxlength">The password is too long.</div>
    </div> 
</div>
</div>


<div class="control-group">
<label class="control-label">Password (Confirm)</label>
<div class="controls" ng-class="{ 'has-error': addCustomerForm.password_2.$touched && addCustomerForm.password_2.$invalid }">
    <input type="text" name="password_2" class="form-control input-lg" ng-model="newCustomerInfo.password_2" ng-minlength="4" ng-maxlength="12" ng-pattern="/^{{password_1}}$/" required>
    <div ng-messages="addCustomerForm.password_2.$error" ng-if="addCustomerForm.password_2.$touched">
        <div ng-message="required">This field is required</div>
        <div ng-message="minlength">The password is too short.</div>
        <div ng-message="maxlength">The password is too long.</div>
        <div ng-message="pattern">The passwords do not match.</div>
    </div> 
</div>
</div>

問題はng-pattern="/^{{password_1}}$/"にあるのではないかと考えていますが、それをデバッグする方法がわからないので、ng-parent の値を確認できます。

どんな助けでも大歓迎です!アンドレアス。

4

1 に答える 1

4

を使用しますng-pattern="{{newCustomerInfo.password_1}}"password_1は定義されておらず、ドキュメントごとに:

^式が文字列に評価される場合、文字でラップした後、正規表現に変換され$ます。たとえば、aka"abc"に変換されます。new RegExp('^abc$')/^abc$/

于 2016-02-05T11:19:31.573 に答える