我是Angular 2的新手。
我创建了一个简单的模板,其中有两个文本字段,我想要求字段验证这两个字段。
<form #loginForm="ngForm" (ngSubmit)="onSubmit(loginForm)" novalidate>
<div class="container">
<div class="form-group">
ooooo <label><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="uname" required [(ngModel)]="UserData.uname" #uname="ngModel">
<div *ngIf="loginForm.invalid" class="alert alert-danger">
<div [hidden]="!uname.errors.required"> Name is required </div>
</div>
</div>
<div class="form-group">
<label><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="pwd" required [(ngModel)]="UserData.pwd" #pwd="ngModel">
<div *ngIf="UserData.pwd.errors && (UserData.pwd.dirty || UserData.pwd.touched)" class="alert alert-danger">
<div [hidden]="!UserData.pwd.errors.required">Password is required </div>
</div>
<button type="submit" >Login</button>
</div>
</div>
</form>
我的组件
import { Component } from "@angular/core"
import { User } from "./UserModel"
@Component({
selector: 'my-login',
templateUrl:"app/Login/login.html"
})
export class LoginComponent
{
//alert: any("hello");
UserData: User = new User("", "");
submitted = false;
onSubmit(form: any) {
alert("dfsdfsd" + form);
if (!form.invalid) {
alert(this.UserData.uname);
alert(this.UserData.pwd);
this.submitted = true;
}
}
}
我想要实现的是 -
非常感谢你的帮助。
答案 0 :(得分:0)
也许可以使用submitted
变量,并在模板中使用它,以便在submitted
为真之前不显示消息,我们将其设置为提交函数。
此外,您不需要双向绑定,因为您的表单生成的对象可以直接分配给您的UserData
。
我刚刚设置的验证消息就像这样,我们的目标是用户名:
<div *ngIf="uname.errors?.required && submitted"> Name is required </div>
在您的提交功能中,我将loginForm.value
作为参数传递而不仅仅是loginForm
。这样就可以准备好使用表单对象了:)
在您的函数中,您可以将对象分配给UserData
变量。
onSubmit(form: any) {
this.submitted = true;
this.UserData = form;
}
如果你想保持双向绑定,那当然是完全可能的! :)
<强> DEMO 强>