【问题标题】:How to add validation in template driven form in ionic 3?如何在 ionic 3 中的模板驱动表单中添加验证?
【发布时间】:2021-04-14 00:31:58
【问题描述】:

如何在ionic 3中验证手机号码,这里我使用了ng模型,有没有例子可以完成?

    <ion-list>
        <ion-item margin-bottom>
            <ion-input type="number" id="phone"   name="phone"  [(ngModel)]="data.phone" #username="ngModel" placeholder="Mobile"></ion-input>
         
        </ion-item>



        <ion-item margin-bottom> 
            <ion-input type="password" id="password" name="password"  [(ngModel)]="data.password" placeholder="*Password"></ion-input>
        </ion-item>

        <div style="text-align:center;">
            <button ion-button color="primary" type="submit" (click)="login()">
        <ion-icon ios="ios-log-in" md="md-log-in"></ion-icon>
      Login</button>
        </div>
    </ion-list>

【问题讨论】:

    标签: angular validation ionic3 ngmodel


    【解决方案1】:

    .html 文件代码

    <ion-list>
        <ion-item margin-bottom>
            <ion-input type="number" id="phone"   name="phone"  [(ngModel)]="data.phone" #username="ngModel" placeholder="Mobile" (ionChange)='validateForm()'></ion-input> 
            <br/>
            {{phoneErrorMessage}}
        </ion-item>
    
        <ion-item margin-bottom> 
            <ion-input type="email" id="email" name="email"  [(ngModel)]="data.email" placeholder="*Password" (ionChange)='validateForm()'></ion-input>
    
            <br/>
            {{emailErrorMessage}}
        </ion-item>
    
        <div style="text-align:center;">
            <button ion-button color="primary" type="submit" (click)="login()">
                <ion-icon ios="ios-log-in" md="md-log-in"></ion-icon>Login
            </button>
        </div>
    </ion-list>
    

    .ts 文件代码

    public phoneErrorMessage = '';
      public emailErrorMessage = '';
      public data = {email:'',phone:''}
      validateForm(){
          var phoneValidationFlag = false ;
          var emailValidationFlag = false ;
      
          if (this.data.phone == "") {
              this.phoneErrorMessage = "Name must be filled out";
              phoneValidationFlag = false ; 
          }else{
              this.phoneErrorMessage = '';
              phoneValidationFlag = true;
          }
      
          var emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
          if (!emailRegex.test(this.data.email)){  
              this.emailErrorMessage =  'Please enter valid email';
              emailValidationFlag = false
          }else{
              this.emailErrorMessage = '';
              emailValidationFlag = true;
          }
      
          return (emailValidationFlag && phoneValidationFlag) ? true : false ;
      }
      
      
      login(){
          if(this.validateForm()){
              //everything validated and you can excute your api call in this if section
          }
      }
    

    【讨论】:

    • 是的,谢谢,但我这里没有使用表单组,我只是使用了 ng 模型,有没有办法在这个 ng 模型方法中添加验证?
    • 是的,但最好使用内置函数。如果您想使用 ngModel 执行此操作,则可以在 login function 中写下代码。您将在其中检查您的 ngmodel 值。
    • 是的,那我如何验证手机号码或电子邮件,我可以将电话号码和电子邮件的 ng 模式放在 html 中吗?
    • 我已经更新了我的电子邮件验证答案,同样您可以将正则表达式用于电话号码并进行验证。
    • 是的,我找到了,但这个答案只在我们点击提交按钮时才适用,不是吗?我们不能在运行时执行此操作,例如当我们输入错误的电话号码或错误的电子邮件格式时,错误消息会出现在文本字段下方,这就是我所期望的,有没有办法做到这一点?跨度>
    猜你喜欢
    • 2019-02-15
    • 1970-01-01
    • 2019-04-16
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多