基于ngzorro 表单点击提交按钮,滚动到第一个校验不通过的控件

@ContentChildren(NgControl, { descendants: true }) ngControls!: QueryList<FormControlName | FormControlDirective>;

@ContentChildren(NgControl, { descendants: true, read: ElementRef }) ngControlEls!: QueryList<ElementRef>;



  /** 第一个校验不通过的控件索引 */

  firstErIndex!: number;

  /** 是否点击了提交按钮,没有就是no,点了就是ok */

  isClicked = new BehaviorSubject('no');



  constructor() { }



  ngOnInit(): void { }



  // ContentChildren通常只能在元素渲染完成后才能拿到实例

  ngAfterViewInit(): void {

    this.isClicked.pipe(debounceTime(150)).subscribe(res => {

      if (res === 'ok') {

        this.ngControls?.find((el, index) => {

          if (el.status == 'INVALID') {

            this.firstErIndex = index;

            return true;

          } else {

            return false

          }

        });

        if (this.firstErIndex !== undefined && this.firstErIndex !=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值