美文网首页
ionic3使用form表单

ionic3使用form表单

作者: 南京确善能 | 来源:发表于2019-03-18 14:41 被阅读0次

ts

  import { Validators, FormGroup, FormControl} from '@angular/forms';
  loginForm=new FormGroup({
    phone:new FormControl('',Validators.compose([Validators.required,Validators.minLength(11),Validators.maxLength(11),Validators.pattern(new RegExp(constUtil.phoneReg))])),
    password:new FormControl('',Validators.compose([Validators.required,Validators.minLength(8)]))
  })
  login(value){}

html

  <form class="addPage" [formGroup]="loginForm" (ngSubmit)="login(loginForm.value)" novalidate>
    <ion-list>
        <input formInvalid [control]="loginForm.get('phone')" type="phone" formControlName="phone" placeholder="手机号" maxlength="11">
      </ion-list>
      <ion-list>
        <input formInvalid [control]="loginForm.get('password')" type="password" formControlName="password" placeholder="密码最少8位">
      </ion-list>
      <ion-list class="submitBtn">
        <button ion-button round [disabled]="!loginForm.valid">登 录</button>
      </ion-list>
  </form>

红线提示,使用的时候需要导入page 的module

import { Directive, Input, HostListener, ElementRef, HostBinding } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { timeout } from 'rxjs/operator/timeout';


/**
 * 表单校验指令
 */
@Directive({
  selector: '[formInvalid]' 
})
export class FormInvalidDirective {

  constructor(public element: ElementRef) {}

  @Input('control') value: AbstractControl;

  @HostListener('ionChange', ['$event.target'])
  ionChange(html: HTMLElement): void {
    this.validor();
  }

  @HostListener('touchend', ['$event.target']) //ios 使用click
  ontouchend(html: HTMLElement): void {
    this.validor();
  }

  @HostListener('keydown', ['$event.target'])
  onCheck(data: any): void {
    //ts中有赋值操作 所以要延时
    setTimeout(() => {
      this.validor();
    }, 10);
  }

  validor(): void {
    if(!this.value.valid){
      this.element.nativeElement.classList.add("redLine")
    }else{
      this.element.nativeElement.classList.remove("redLine")
    }
  }
}

相关文章

  • 关于vue v-decorator

    ant-desigin-vue中form表单的使用 form表单的使用 form表单之获取表单的数据 创建表单 通...

  • ionic3使用form表单

    ts html 红线提示,使用的时候需要导入page 的module

  • 表单上传的几种方法

    使用form表单进行提交 使用FormData对象 使用jquery.form.js jquery.form.js...

  • react+antd:Form表单校验不提示错误信息

    使用AntD Form表单验证validator不生效 Form表单Select中设置initialValue 无...

  • springmvc 10 表单与验证

    表单 表单用的是springmvc的form标签 引入springmvc的form标签 在form标签中使用mod...

  • JavaWEB前端上传图片的几种方法

    1.表单上传 最传统的图片上传方式是form表单上传,使用form表单的input[type=”file”]控件,...

  • 使用form表单进行前后台传值

    form表单的写法 一、使用原生的form表单 例如通过提交表单进行更新操作,原生表单的写法如下:方法1: 对应的...

  • HTML表单

    表单(form) 网站怎样与用户进行交互?答案是使用HTML表单(form)。表单可以把浏览者输入的数据传送到服务...

  • 3. HTML form表单的用法

    form表单的作用: 网站怎样与用户进行交互?答案是使用HTML表单(form)。表单是可以把浏览者输入的数据传送...

  • _姜3

    @form表单form使用HTML5语法,顶部需添加说明 = = = = = = =...

网友评论

      本文标题:ionic3使用form表单

      本文链接:https://www.haomeiwen.com/subject/jmwvmqtx.html