当前位置: 首页 > 知识库问答 >
问题:

提交表单angularjs后,显示所有无效字段的红色边框

夏朗
2023-03-14

我有一个表单,其中有一些输入字段。其中一些是必填字段,一些是电子邮件字段。

我使用HTML5必需属性的必需字段和type="email"属性的电子邮件字段。

我的问题是在点击提交按钮后,我必须为所有无效字段显示红色边框。

这是我的表格:

<form name="addRelation">
  <label>First Name</label>
  <input type="text" placeholder="First Name" data-ng-model="model.firstName"     id="FirstName" name="FirstName" required/><br/>
  <span class="text-error" data-ng-show="addRelation.submitted && addRelation.FirstName.$error.required">first Name is required</span><br/>
  <label>Last Name</label>
  <input type="text" placeholder="Last Name" data-ng-model="model.lastName" id="LastName" name="LastName" required/><br/>
  <span class="text-error" data-ng-show="addRelation.submitted && addRelation.LastName.$error.required">Last Name is required</span><br/>
  <label>Email</label>
  <input type="email" placeholder="Email" data-ng-model="model.email" id="Email" name="Email" required/><br/>
  <span class="text-error" data-ng-show="addRelation.submitted && addRelation.Email.$error.required">Email address is required</span><br/>
  <span class="text-error" data-ng-show="addRelation.submitted && addRelation.Email.$error.email">Email address is not valid</span><br/>

  <input class="btn" data-ng-click="save(model)" type="button" value="SAVE" />  
  </form>

还有我的保存功能。

$scope.save= function (model) {
    if ($scope.addRelation.$valid) {
        //form is valid- so save it to DB
    }
    else {
        //if form is not valid set $scope.addRelation.submitted to true
        $scope.addRelation.submitted=true;
    }
};
 })

现在,当我点击保存按钮而不填写任何内容时,所有的错误(跨度)都会显示出来。但是我想显示所有无效字段的红色边框。

我审理了下列案件:

input.ng-dirty.ng-invalid{border:1px solid black;}

但是当用户直接点击提交按钮时,这将失败。(

input.ng-invalid{border:1px solid black;}

一旦用户打开注册表单,就会显示红色边框。

请帮忙。

共有3个答案

田意致
2023-03-14

我创建了一个代码笔示例来演示如何实现目标。

我将ng单击添加

<form name="addRelation" data-ng-click="save(model)">
...
<input class="btn" type="submit" value="SAVE" />

以下是更新的模板:

<section ng-app="app" ng-controller="MainCtrl">
  <form class="well" name="addRelation" data-ng-click="save(model)">
    <label>First Name</label>
    <input type="text" placeholder="First Name" data-ng-model="model.firstName" id="FirstName" name="FirstName" required/><br/>
    <span class="text-error" data-ng-show="addRelation.submitted && addRelation.FirstName.$invalid">First Name is required</span><br/>
    <label>Last Name</label>
    <input type="text" placeholder="Last Name" data-ng-model="model.lastName" id="LastName" name="LastName" required/><br/>
    <span class="text-error" data-ng-show="addRelation.submitted && addRelation.LastName.$invalid">Last Name is required</span><br/>
    <label>Email</label>
    <input type="email" placeholder="Email" data-ng-model="model.email" id="Email" name="Email" required/><br/>
    <span class="text-error" data-ng-show="addRelation.submitted && addRelation.Email.$error.required">Email address is required</span>
    <span class="text-error" data-ng-show="addRelation.submitted && addRelation.Email.$error.email">Email address is not valid</span><br/>
    <input class="btn" type="submit" value="SAVE" />  
  </form>
</section>

和控制器代码:

app.controller('MainCtrl', function($scope) {  
  $scope.save = function(model) {
    $scope.addRelation.submitted = true;

    if($scope.addRelation.$valid) {
      // submit to db
      console.log(model); 
    } else {
      console.log('Errors in form data');
    }
  };
});

我希望这有帮助。

李意致
2023-03-14

如果表单已提交,则可以使用默认的ng-提交设置。

https://docs.angularjs.org/api/ng/directive/form

示例:http://jsbin.com/cowufugusu/1/

陶胤运
2023-03-14

参考文章:为无效输入字段angualrjs显示红色边框

我在所有输入字段上都使用了ng类。如下

<input type="text" ng-class="{submitted:newEmployee.submitted}" placeholder="First Name" data-ng-model="model.firstName" id="FirstName" name="FirstName" required/>

当我点击save按钮时,我正在更改newEmployee。提交值为true(您可以在我的问题中进行检查)。因此,当我单击save时,一个名为submitted的类被添加到所有输入字段中(angularjs最初添加了一些其他类)。

所以现在我的输入字段包含这样的类

class="ng-pristine ng-invalid submitted"

现在我使用下面的css代码在所有无效的输入字段上显示红色边框(提交表单后)

input.submitted.ng-invalid
{
  border:1px solid #f00;
}

非常感谢。

更新:

我们可以在form元素中添加ng类,而不是将其应用于所有输入元素。因此,如果表单已提交,则会向表单元素添加一个新类(已提交)。然后我们可以使用下面的选择器选择所有无效的输入字段

form.submitted .ng-invalid
{
    border:1px solid #f00;
}
 类似资料:
  • 我有一个表单,它有两个文本区域和引导用户界面星级,以及它们的标签文本。我已将所有文本区域和星级设置为必填字段。 当我点击提交按钮时,我想将文本区域()/星级()的所有标签文本更改为红色字体,并在所有无效字段的文本区域周围设置红色边框。下面是我的代码,这是不工作。 我希望以下情况发生时,我点击保存按钮没有输入任何东西。你能告诉我如何实现这三项吗? 将无效文本区域周围的边框更改为红色 提前感谢您的帮助

  • 我已经使用AngularJS和Bootstrap实现了这个基本表单:http://jsfiddle.net/dennismadsen/0stwd03k/ HTML JavaScript 结果 名称输入字段是必需的。当我单击submit按钮时,如果输入字段无效,我需要它有一个红色边框。如何做到这一点? 或者,如果我取消了输入字段的焦点,但它仍然无效,那么在那个时候显示红色记号笔将是非常好的,而不是等

  • 其实我是用条形码扫描器来输入字段的。如果我有3个字段,那就是: 物料条码: 物料条码: 序列条码: 步骤: 1。在物料条形码文本字段 2中扫描物料条形码。扫描条形码“项目条形码”文本字段 3中的项目条形码。在串行条码文本字段中对串行条码进行扫描,扫描后自动提交。 那么问题来了,如果所有的字段都填好了,怎么自动提交呢? 谢谢你。

  • 问题内容: 最近,到目前为止,我已经跳入angularjs及其精彩。我一直在通过$ http服务发送AJAX请求。今天,我震惊地发现没有简单的方法可以做到(据我所知)。通过谷歌和SO进行搜索使我无所适从复杂的复杂解决方案。 尽管我现在最终使用了JQuery,但对于像JQuery ajax这样能够发送表单的东西是否真的可用感到好奇。这是简单的JQuery代码,用于说明正在讨论的内容 问题答案: 有一

  • 问题内容: 我正在学习AngularJs的学习过程,发现几乎没有任何示例可用于现实世界。 我试图对如何使用最标准的组件提交表单并将其传递给PHP文件有一个清晰的了解。 我的小提琴。 有人在提交简单,无污染的表单方面有什么好的例子吗,这些表单会对我以及其他许多Angularjs初学者有所帮助。 当我说一个干净的表格时,我指的是这样的东西。 我的ng-app代码… 我猜我接下来要问的三个问题是… 我的

  • 我正在尝试为我的登录构建一个提交表单,但我不知道为什么这个操作不起作用。有什么想法吗? > 列表项jquery $(“Form”).Submit(函数(e){e.PreventDefault();switch(this.id){case“login-form”:var$lg_username=$('#login_username').val();var$lg_password=$('#login_