【发布时间】:2015-07-10 05:39:47
【问题描述】:
我正在使用 ngMessages 通过我的表单验证显示错误消息,这是有效的。
现在我的问题是,当我提交表单时,我想将类从有效(绿色边框)更改为正常状态,这只是输入上的 css。此外,如果所有字段都有效,则应在表单上方显示一条文本消息,表明表单已发送,但它似乎不适用于 $valid。
几秒钟后消息消失。
我的代码
css
input {
background-color: #fff;
border: 1px solid darkgray;
margin-top: 20px;
width: 400px;
height: 45px;
padding: 0 10px;
}
.invalid-field {
border: 1px solid red;
}
.valid-field {
border: 1px solid green;
}
.error {
color: red;
}
.sent {
color: green;
}
html/角度
<form novalidate name="contactForm">
<div ng-messages="contactForm.$valid" ng-if="contactForm.$submitted">
<div ng-message="valid">
<span class="sent">Your message has been sent!</span>
</div>
</div>
<input ng-class="{'invalid-field': contactForm.nameField.$touched || contactForm.$submitted, 'valid-field': contactForm.nameField.$valid}"
type="text" name="nameField" placeholder="Full name*"
ng-model="contactName"
minlength="2"
required >
<div ng-messages="contactForm.nameField.$error" ng-if="contactForm.$submitted || contactForm.nameField.$touched">
<div ng-message="required">
<span class="error">Name is required</span>
</div>
<div ng-message="minlength">
<span class="error">Name must be 2 characters long</span>
</div>
</div>
<input ng-class="{'invalid-field': contactForm.emailField.$touched || contactForm.$submitted, 'valid-field': contactForm.emailField.$valid}"
type="email" name="emailField" placeholder="Email*"
ng-model="contactEmail"
required>
<div ng-messages="contactForm.emailField.$error" ng-if="contactForm.$submitted || contactForm.emailField.$touched">
<div ng-message="required"><span class="error">Email is required</span></div>
<div ng-message="email"><span class="error">Email is not valid</span></div>
</div>
<button class="send-btn" type="submit">Send form</button>
</form>
【问题讨论】:
-
做一个笨蛋。这对您和我们都会很有帮助。
-
我会在一分钟内用 plunker 编辑我的问题。
标签: html angularjs forms validation