event.stopPropagation()在表单上不起作用

问题描述 投票:0回答:2

例如,我有一个简单的角形:

  <form [formGroup]="form">
    <div>
      <input type="text" (keydown.enter)="onEnterPerssed($event)" [formControl]="myList" formControlName="myList">
    </div>
   <br>

    <p *ngIf="sendData" class="mt-1">Data send successfully</p>

    <button type="submit" (click)="onSubmit(form)" class="btn btn-block btn-primary mt-2" style="width: 100px;" [disabled]="form.invalid">
    Submit
    </button>
  </form>
export class AppComponent implements OnInit {
  sendData: boolean = false;

  form: FormGroup;
  isDisabled: boolean = true;
  myList: FormControl = new FormControl('sdfsdf', [Validators.required  ]);

  constructor(private fb: FormBuilder) { }

  ngOnInit(): void {
    this.form = this.fb.group({
      myList: this.myList
    });
  }

  onSubmit(form): void {
    this.sendData = true;
    console.log('data send successfully');
  }

  onEnterPerssed(event: Event) {
    event.stopPropagation();
    console.log('asdasfasfsfafasfasf');
  }
}

关于在不更改按钮类型(提交=>按钮)的情况下单击输入字段上的Enter时如何防止提交表单的解决方案?

我有一个简单的角形式,例如:

[[[[]
] >>
更改form标签上的提交事件,并从提交按钮中删除点击事件。

<form [formGroup]="form" (ngSubmit)="onSubmit($event)">

onSubmit(event) {
    event.preventDefault();
    // logic goes here
}
[ngSubmit确保在处理程序代码抛出(这是Submit的默认行为)并引起实际的http post请求)时不提交表单。

在模板中尝试一下:

(keydown.enter)="$event.preventDefault()标签内使用form

<form [formGroup]="form" (keydown.enter)="$event.preventDefault()"> <div> <input type="text" (keydown.enter)="onEnterPerssed($event)" [formControl]="myList" formControlName="myList"> </div> <br> <p *ngIf="sendData" class="mt-1">Data send successfully</p> <button type="submit" (click)="onSubmit(form)" class="btn btn-block btn-primary mt-2" style="width: 100px;" [disabled]="form.invalid"> Submit </button> </form>

javascript angular angular-forms
2个回答
1
投票
更改form标签上的提交事件,并从提交按钮中删除点击事件。

<form [formGroup]="form" (ngSubmit)="onSubmit($event)">


0
投票

在模板中尝试一下:

© www.soinside.com 2019 - 2024. All rights reserved.