如何使用 Angular 2 在单个 ts 文件中编写 2 个表单验证?

Posted

技术标签:

【中文标题】如何使用 Angular 2 在单个 ts 文件中编写 2 个表单验证?【英文标题】:How to write 2 forms validations in single ts file using Angular 2? 【发布时间】:2017-04-24 15:42:45 【问题描述】:

我是 Angular 2 的新手。

我们在 html 中有 2 个带有单独 div 标签的表单,每当第一个 div 执行时,第二个 div 是 false 状态。每当成功回调时,第二个div 将是真实状态。每当它出现第二个div 真实状态时,它将显示this error message。

以下是我的 .ts 文件代码:

constructor(public navCtrl: NavController,
            public navParams: NavParams,
            public formBuilder:FormBuilder,
            public logger: Logger,
            public rest: Rest
            ) 
  this.customer_id=this.navParams.get('customer_id');
  this.mobile=this.navParams.get('mobile');

  this.myForm = formBuilder.group(
    'otpNumber': ['', Validators.required]
    //'password': ['', Validators.required]
   );

  this.myForm1 = formBuilder.group(
    'newpassword': ['', Validators.required],
    'conformPassword': ['', Validators.required]
  );

  this.getotp();


submit()
  let validateOTPObj = 
    loginId: this.mobile,
    otp:this.myForm.value.otpNumber
  

  this.logger.debug("checking the otpNumber"+JSON.stringify(validateOTPObj));

  this.rest.post('/validateOTP' ,validateOTPObj)
    .subscribe((result)=>
      this.logger.debug("checking data of success " + JSON.stringify(result));

       if(result.status=='1')
         //this.navCtrl.push(,);
         //this.access_token = id;
         this.firstDiv=false;
         this.secondDiv = true;
         this.logger.debug("checking access tocken "+ this.access_token);
         alert("otp success");
        else 
         this.logger.info("error");
       
    );
 

【问题讨论】:

可以分享一下html端吗? 如果您共享您的 html 会更好,但根据错误消息,您可能只是忘记在 html 中将 myForm/myForm1 声明为 formGroup [formGroup]="myForm" [formGroup]="myForm1" 【参考方案1】:

只需为不同的表单调用不同的方法:

HTML:

 <form (submit)= 'form1()'>
<input type='text'  required >
<input type='submit' value='submit' />

 <form (submit)= 'form2()'>
<input type='text'  required >
<input type='submit' value='submit' />

TS:

  form1()
console.log('form 1')
  

 form2()
console.log('form 2')
  

【讨论】:

以上是关于如何使用 Angular 2 在单个 ts 文件中编写 2 个表单验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 2+ 中将值从 ts 文件传递​​到同一组件中的 scss 文件?

如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件

TS2304:在 Webpack / Angular 2 中找不到名称“描述”

如何从HTML值更新Angular .ts文件中的值?

如何使用从多个 ts 文件生成的单个 .d.ts 文件

Angular 2+,有啥方法可以声明一个模块中的所有组件,然后在 app.module.ts 中导入?