2017-08-01 33 views
0

ts代码:角度2中的用户名maxlength验证不能与三星设备一起使用。与数字数据一起工作良好,但不能与字母数字工作

导入了所有必需的组件。

constructor(public platform: Platform, public formBuilder: FormBuilder,public navCtrl: NavController public http: Http) { 
this.loginForm = new FormGroup({ 
    userName: new FormControl('', Validators.compose([Validators.required, Validators.minLength(5), Validators.maxLength(16)])), 
    password: new FormControl('', Validators.compose([Validators.required, Validators.minLength(6), Validators.maxLength(16)])) 
    enableTouchId: new FormControl(false, []) 
}); 
} 

在HTML:

<form [formGroup]="loginForm" name="loginForm" (ngSubmit)="login(loginForm)"> 
    <ion-row> 
    <ion-col> 
     <ion-list no-lines> 
     <ion-item class="member-item"> 
      <ion-input type="text" placeholder="Username" [readonly]="isReadOnly()" formControlName="userName" name="userName" [(ngModel)]="userName" minlength="5" maxlength="16" required></ion-input> 
      <ion-icon ios="ios-person" md="md-person" item-left></ion-icon> 
     </ion-item> 
     </ion-list> 
    </ion-col> 
</ion-row> 
</form> 

我已经验证/测试解决方案出来,但没有运气的计算器。

+0

在反应形式(这似乎是),你不需要'[(ngModel)]'你应该从提交'(ngSubmit)'得到表单值。您目前正在混合被动模板和模板表单 – 0mpurdy

回答

0

如果使用FormBuilder与验证你不需要重复他们对你的HTML,和所有你需要识别输入是formControlName="userName",让你的HTML应该是这样的:

<form [formGroup]="loginForm" name="loginForm" (ngSubmit)="login()"> 
    <ion-row> 
    <ion-col> 
     <ion-list no-lines> 
     <ion-item class="member-item"> 
      <ion-input type="text" placeholder="Username" [readonly]="isReadOnly()" formControlName="userName"></ion-input> 
      <ion-icon ios="ios-person" md="md-person" item-left></ion-icon> 
     </ion-item> 
     </ion-list> 
    </ion-col> 
</ion-row> 
</form> 

然后在login()你使用this.loginForm来处理表格。

相关问题