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

AngularJS和Bootstrap:提交时无效输入字段上的红色边框

酆鸿哲
2023-03-14

我已经使用AngularJS和Bootstrap实现了这个基本表单:http://jsfiddle.net/dennismadsen/0stwd03k/

HTML

<div ng-controller="MyCtrl">
    <form class="well" name="formTest" ng-submit="save()">
        <div class="form-group">
            <label for="name">Name*</label>
            <input type="name" class="form-control" id="name" placeholder="Enter name" required />
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
    </form>
</div>

JavaScript

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {

    $scope.save = function () {
    };
}

结果

名称输入字段是必需的。当我单击submit按钮时,如果输入字段无效,我需要它有一个红色边框。如何做到这一点?

或者,如果我取消了输入字段的焦点,但它仍然无效,那么在那个时候显示红色记号笔将是非常好的,而不是等待表单提交。

共有3个答案

夏侯衡
2023-03-14

基本上,你需要角来接管验证,所以添加novalester到表单中。还添加ng-class输入字段,以确定阉羊添加错误css

<form name="myForm" novalidate ng-submit="test()">
    <input type="text" name="user" ng-model="user" required ng-class="myForm.user.$invalid && myForm.user.$dirty ? 'error' : ''">
    <span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid">
        <span ng-show="myForm.user.$error.required">Username is required.    </span>
</span>

<p>
    <input type="submit"
    ng-disabled="myForm.user.$dirty && myForm.user.$invalid ||
    myForm.email.$dirty && myForm.email.$invalid">
</p>
</form>

祝你好运...

田翔
2023-03-14

您缺少的第一件事是将ng model='name'添加到输入字段,然后只有在单击“提交”后表单才会变为无效,否则表单将始终有效,因为它认为没有字段存在。

然后我会在submit点击按钮上添加submitted类,然后像一样放置边框css。提交的将是父级和。ng invalid将是子项,因此我们可以将样式设置为。提交。ng无效

HTML

<div ng-controller="MyCtrl">
    <form class="well" name="formTest" ng-class="{'submitted': submitted}" ng-submit="save()" >
        <div class="form-group">
            <label for="name">Name*</label>
            <input type="name" class="form-control" id="name" placeholder="Enter name" ng-model="name" required />
        </div>{{submitted}}
        <button type="submit" class="btn btn-default" ng-click="submitted= true;">Submit</button>
    </form>
</div>

CSS

.submitted .ng-invalid{
    border: 1px solid red;
}

工作小提琴

希望这能帮助你,谢谢。

祁景山
2023-03-14

Twitter引导有一个has error类,因此我会将它与表单组的ng类结合使用,然后是一个带有标签标签危险类的标签,以便更好地衡量:

<div class="form-group" ng-class="{'has-error': errors.Name }">
    <label for="name">Name*</label>
    <input type="name" class="form-control" id="name" placeholder="Enter name" required />
    <span class="label label-danger" ng-if="errors.Name">{{errors.Name}}</span>
</div>

然后在控制器中,设置一个errors对象,并在名称无效时将其Name属性设置为字符串。

 类似资料:
  • 我有一个表单,其中有一些输入字段。其中一些是必填字段,一些是电子邮件字段。 我使用HTML5必需属性的必需字段和type="email"属性的电子邮件字段。 我的问题是在点击提交按钮后,我必须为所有无效字段显示红色边框。 这是我的表格: 还有我的保存功能。 现在,当我点击保存按钮而不填写任何内容时,所有的错误(跨度)都会显示出来。但是我想显示所有无效字段的红色边框。 我审理了下列案件: 但是当用户

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

  • 当我在做表单处理时,我有一个form.html文件和一个process.jsp文件。html将显示表单,action设置为process.jsp。我需要检查用户是否填写了输入字段。 如果用户没有输入任何内容并单击submit按钮,request.getParameter(“name”)的返回值是什么。因为我不知道它是空值还是空字符串,所以我都检查了。而只是想弄清楚它是空字符串还是空字符串。

  • 问题内容: 我正在编写一些javascript(lubricmonkey /用户脚本),它将一些输入字段插入网站上的表单中。 问题是,我不希望这些输入字段以任何方式影响表单,我不希望它们在提交表单时提交,我只希望我的JavaScript可以访问它们的值。 有什么办法可以将一些输入字段添加到表单的中间,而在提交表单时不提交它们呢? 显然,理想的情况是输入字段不在form元素中,但是我希望结果页面的布

  • 当文本输入为空时,我需要将按钮设置为灰色,一旦所有字段都已填写,请将其更改为蓝色。 login.tsx 从'React'导入React,{useState};从'react native'导入{View、Text、TextInput、TouchableOpacity};从'../../../infrastructure/components/buttons/button-outline prima

  • 问题内容: 我有使用验证的表单字段。问题在于,呈现表单时会立即显示错误。我只希望在用户实际在文本字段中键入或提交后才显示它。 我该如何实施? 问题答案: 仅在用户与输入交互后,使用标志显示错误: 如果仅在用户提交表单后才想触发错误,则可以使用单独的标志变量,如下所示: 然后,如果表达式内的所有JS 看上去对您来说太多了,您可以将其抽象为一个单独的方法: