ngSubmit不会在移动浏览器上提交

时间:2019-02-05 12:45:00

标签: angular-material angular7 angular-flex-layout

触摸(单击)按钮时,什么也没有发生!

使用Chrome或Firefox等浏览器在Windows 10桌面上完美运行,但不适用于Samsung Galaxy Note 4(android 6)或Samsung Galaxy Tab S3(android 8)等设备。

这是我的代码。

<form fxLayout="column" fxLayoutAlign="center" [formGroup]="customerForm" (ngSubmit)="saveCustomer(customerForm.value)">
    <label for=""><h3>New Customer</h3></label>
    <mat-form-field>
        <input matInput placeholder="First Name" formControlName="firstName" autocomplete>
    </mat-form-field>
    <mat-form-field>
        <input matInput placeholder="Last Name" formControlName="lastName" autocomplete>
    </mat-form-field>
    <mat-form-field>
        <input matInput placeholder="Email" formControlName="email" autocomplete>
    </mat-form-field>
    <mat-form-field>
        <input matInput placeholder="Telephone" formControlName="telephoneNum" autocomplete>
    </mat-form-field>
    <mat-form-field>
        <input matInput placeholder="Cellular" formControlName="cellularNum" autocomplete>
    </mat-form-field>

    <button type="submit" mat-raised-button color="primary">Submit</button> 
</form>

这是组件上的代码。

saveCustomer(newCustomer: Customer) {
    this.customerService.saveCustomer(newCustomer).subscribe(
        customer => console.log(customer),
        err => console.error(err),
        () => this.router.navigate(["/customers"])
    );
}

有人遇到这个问题吗?

2 个答案:

答案 0 :(得分:0)

也许您尝试使用属性(click)=“” 并删除此(ngSubmit)="saveCustomer(customerForm.value)"

例如:

<button (click)="saveCustomer(customerForm.value)" 
 type="submit" mat-raised-button color="primary">Submit</button> 

答案 1 :(得分:0)

您的代码看起来不错,只需替换此行即可使用:

  

替换此行

 (ngSubmit)="saveCustomer(customerForm.value)"
  

此行

(submit)="saveCustomer(customerForm.value)"

这是因为angular 2+在相同的JavaScript函数或html元素方法上进行单向事件绑定,只需放置任何js / Html事件

ex: onclick 可以用(单击)表示。 可以将 onblur 写为(blur)

让我知道是否知道。