Как отобразить сообщение об ошибке, когда пароли не совпадают в Angularjs? - PullRequest
1 голос
/ 15 марта 2019

Я новичок в Angularjs и у меня вопрос, как отобразить сообщение об ошибке, когда пароль не совпадает с подтверждением пароля?Может кто-нибудь мне помочь, это не очень сложно, но я все еще учусь программировать.Спасибо всем!У меня есть HTML-код:

<form ng-submit="saveItem(userForm.$valid)" name="userForm">
    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <label for="database_address">User</label>
                <input type="text" class="form-control" required ng-model="activeItem.username" placeholder="Потребителско Име..." />
            </div>

            <div class="form-group">
                <label for="password">Password</label>
                <input type="text" class="form-control" id="password" ng-model="activeItem.passwordString"  />
            </div>
            <div class="form-group">
                <label for="password">Confirm Password</label>
                <input type="text" class="form-control" id="password" ng-model="activeItem.passwordConfirm"  />
            </div>
              <p ng-show="(userForm.passwordConfirm != '') && (userForm.password != userForm.passwordConfirm)">Passwords don't match</p>

        </div>
        <div class="col-sm-6">
            <div class="form-group">
                <label for="username">Operator</label>
                <input type="text" class="form-control" required id="username" ng-model="activeItem.name" />
            </div>
        </div>
    </div>
    <button class="btn btn-primary" ng-disabled="userForm.$invalid" type="submit">Save</button>
    <!--<button class="btn btn-primary" ng-disabled="userForm.$invalid" type="submit">Добавяне на нов</button>-->
</form>

И угловая функция:

$scope.saveItem = function(){
        console.log($scope.activeItem);
        //delete $scope.activeItem.hash_method
        var objectToSave = {
            username: $scope.activeItem.username,
            //password: $scope.activeItem.password,
            name: $scope.activeItem.name,
            id: $scope.activeItem.id
        };

        if($scope.activeItem.passwordString != ''){
            if($scope.activeItem.passwordString == $scope.activeItem.passwordConfirm){
                objectToSave.password = $scope.activeItem.passwordString;
            } else {
                    console.log('Confirm password error');

            }
        }

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Вы хотите сохранить разные идентификаторы для двух полей пароля, а также взглянуть на привязки вашей модели:

<input type="text" class="form-control" id="password" ng-model="activeItem.passwordString" />

<input type="text" class="form-control" id="passwordConfirm" ng-model="activeItem.passwordConfirm" />

Вы можете просто ссылаться на элементы, которые связаны с ng-моделью внутри ng-if / ng-show, и тогда вам не понадобится какая-либо настраиваемая логика на серверной части.

<p ng-show="(activeItem.passwordString && activeItem.passwordConfirm) && activeItem.passwordString !== activeItem.passwordConfirm ">Passwords don't match</p>

Кроме того, вы, вероятно, захотите использовать '! ==' over '! =', Поскольку вы просто сравниваете две строки, поскольку это более строгое сравнение.

Редактировать: одна вещь, на которую следует обратить внимание, с этим направлением вы все равно, вероятно, захотите выполнить проверку ошибок в функции сохранения, но это должно обрабатывать отображение сообщения об ошибке без каких-либо проблем.

0 голосов
/ 15 марта 2019

Помните, что оператор 'not равный' это "! ==", с этим вы сможете сделать это!

...