Angular:Ng仅在窗体中关闭“输入字段”时显示

Angular: Ng-show only while off Input Field in Form

本文关键字:字段 输入 输入字段 显示 Ng 窗体 Angular      更新时间:2023-09-26

https://jsfiddle.net/jzhang172/xu93yubL/

具体问题在我的电子邮件输入字段
是否可以仅在验证字段后以及用户不在输入字段内时显示ng显示消息

换句话说,如果用户在输入字段上,我希望ng显示消息消失。

我尝试了许多逻辑组合,但都没能让它发挥作用:

(function(angular) {
  'use strict';
angular.module('formExample', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.master = {};
    $scope.update = function(user) {
      $scope.master = angular.copy(user);
    };
    $scope.reset = function(form) {
      if (form) {
        form.$setPristine();
        form.$setUntouched();
      }
      $scope.user = angular.copy($scope.master);
    };
    $scope.reset();
  }]);
})(window.angular);
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<body ng-app="formExample">
  <div ng-controller="ExampleController">
  <form name="form" class="css-form" novalidate>
    Name:
    <input type="text" ng-model="user.name" name="uName" required="" />
    <br />
    <div ng-show="form.$submitted || form.uName.$touched">
      <div ng-show="form.uName.$error.required">Tell us your name.</div>
    </div>
    E-mail:
    <input type="email" ng-model="user.email" name="uEmail" required="" />
    <br />
    <div ng-show="form.$submitted || form.uEmail.$touched">
      <span ng-show="form.uEmail.$error.required" style="background:red;">Tell us your email.</span>
      <span ng-show="form.uEmail.$error.email"style="background:red;">This is not a valid email.</span>
    </div>
  </form>
</div>
</body>

您可以使用ngFocusingBlur指令来获得所需的结果。。。

只需在ngFocus上设置一些变量false,在ngBlur上设置true,然后将该变量添加到ngShow条件中。。。

 <input type="email" ng-model="user.email" name="uEmail" required="" ng-focus="showEmailValidationMsg = false;" ng-blur="showEmailValidationMsg = true;"/>
    <br />
    <div ng-show="(form.$submitted || form.uEmail.$touched) && showEmailValidationMsg">
      <span ng-show="form.uEmail.$error.required" style="background:red;">Tell us your email.</span>
      <span ng-show="form.uEmail.$error.email"style="background:red;">This is not a valid email.</span>
    </div>

这里正在工作JSFIDDLE。。。