gpt4 book ai didi

angularjs - 在 AngularJS 中将表单标记为未提交

转载 作者:行者123 更新时间:2023-12-03 08:25:29 25 4
gpt4 key购买 nike

在 AngularJS 中,有没有办法将已经提交的表单标记为未提交(因此它会丢失 ng-submitted 类?

背景:

在我的 css 中,我使用 angular 验证类来完成以下操作:

  • 最初,所有输入都具有正常的边框颜色。
  • 如果用户将输入修改为无效值,请将边框颜色设置为红色。
  • 如果用户单击提交按钮,则将所有无效输入的边框颜色设置为红色。

  • 我是这样完成的:
    input.ng-dirty.ng-invalid, .ng-submitted .ng-invalid {
    border-color: #F00;
    }

    这很好用。现在我有一个提交异步请求的表单,如果服务器以成功状态响应,我想清除表单(并有效地将其重置为原始状态)。问题是当我清除表单时,它仍然有 .ng-submitted类,因此所有必填字段都有红色边框。但是我希望他们都有一个正常的边界。

    我应该能够使用 $setPristine() 将所有字段标记为原始字段,但我没有看到任何将表单标记为未提交的方法。这是可能的,还是我需要为此创建和维护自己的类?

    最佳答案

    您可以重置表单并将其标记为 unsubmitted使用以下片段。

    网址:

    <input type="button" ng-click="reset(form)" value="Reset" />

    Angular 脚本:
    $scope.reset = function(form) {
    if (form) {
    form.$setPristine();
    form.$setUntouched();
    }
    $scope.user = angular.copy($scope.master);
    };

    这是取自 https://docs.angularjs.org/guide/forms

    关于angularjs - 在 AngularJS 中将表单标记为未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27642783/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com