【问题标题】:How to reset the form values without showing validation error如何在不显示验证错误的情况下重置表单值
【发布时间】:2016-09-22 08:22:21
【问题描述】:

表单 - HTML

电子邮件地址: 电子邮件地址字段为必填项 太长 无效的邮件地址 密码: 密码字段为必填项 登录

登录控制器 - Angular JS

(function () {
    'use strict';
    angular
    .module('app')
    .controller('loginController', loginController);

    loginController.$inject = ['ApiService', '$location', 'AuthenticationService', 'FlashService'];
    function loginController(ApiService, $location, AuthenticationService, FlashService) {
        var vm = this;
        vm.userLogin = userLogin;
        (function initController() {
            // reset login status
            AuthenticationService.ClearCredentials();
        })();

        function userLogin() {
        FlashService.clearNotification();
            ApiService.userLogin(vm.user).then(function (response) {
                if (response.success) {
                    FlashService.Success(response.message); 
                    } else {
                    FlashService.Error(response.message);
                }
                vm.user.$setPristine();
            });
        }
    }   
 })();

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    我认为你也必须设置vm.user = {};vm.user.$setPristine(true);

    loginController.$inject = ['ApiService', '$location', 'AuthenticationService', 'FlashService'];
    function loginController(ApiService, $location, AuthenticationService, FlashService) {
        var vm = this;
        vm.userLogin = userLogin;
        (function initController() {
            // reset login status
            AuthenticationService.ClearCredentials();
        })();
    
        function userLogin() {
        FlashService.clearNotification();
            ApiService.userLogin(vm.user).then(function (response) {
                if (response.success) {
                    FlashService.Success(response.message); 
                    } else {
                    FlashService.Error(response.message);
                }
                vm.user = {};
                vm.user.$setPristine(true);
            });
        }
    }
    

    【讨论】:

    • 嗨 Umakanta Behera!现在表单字段正在清除,但仍显示必需的字段验证。
    • 您的表单名称属性是“用户”吗?我的意思是
      .
    • 不,这是我的表单
    • 你应该改为
      或 vm.form.$setPristine(true );
    猜你喜欢
    • 2019-09-10
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 2016-02-18
    • 2013-03-11
    • 1970-01-01
    相关资源
    最近更新 更多