javascript - 获取表单 Angular 字段

标签 javascript jquery html css angularjs

我有一个包含一些字段的表单。
我正在使用 css 类验证字段:(如果该字段无效并且用户触摸了它,则输入的 border-color = red。)

select.ng-invalid.ng-touched,
input.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched {
    border-color: red;
}

如果用户未填写一个或多个字段就提交了表单,将会出现危险警报。

HTML:

  <div ng-show="formInvalid>
       error!
  </div>

JS:

 if ($scope.pniyaForm.$valid) {
    $scope.formInvalid = false;
      .....
 } else {
    $scope.formInvalid = true;
 }

但是,如果用户提交表单但没有触及任何字段,则 css 类不会影响。(因为用户没有触及...)
我想在代码中添加类。
有没有人想出一种优雅的方式来做到这一点,而无需分别在每个字段上编写?

最佳答案

可能的解决方案:

当您执行表单函数时,将以下行添加到其中。

$scope.$apply(function () {});

此行将导致 ng $scope.$watch() 运行并应用更改(如果存在)。 可能有效,可能无效,请阅读以下链接以更深入地了解该问题。

http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

关于javascript - 获取表单 Angular 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45707081/

相关文章:

javascript - Bootstrap 导航栏 : Is there a way to disable a few menu items even the parent for certain pages?

html - Bootstrap 尝试将 Logo 向左对齐并将其居中

javascript - 如果使用 JSONP 来绕过同源策略,它不能用于 XSS 攻击吗?

javascript - YouTube iframe播放器API-OnStateChange不触发

jquery - CSS伪类覆盖类

javascript - jquery 我想禁用基于隐藏字段的表单中的 div

html - 将 div 对齐到其他元素下方并垂直对齐其文本

javascript - 加载动态 HTML - 服务器端或客户端

javascript - 如何将用户输入的值从 html 传输到 javascript

jquery - bootstrap 可折叠导航栏开始打开