嘟嘟社区

[疑问] html按钮怎么避免重复提交


本帖最后由 小旭 于 2022-4-14 00:05 编辑

html按钮怎么避免重复提交  比如用户提交开通邮箱[email protected] 我的想法是调用[email protected]变量来写一旦出现[email protected]按钮就不可用
但问题是我不知道怎么实现他
代码: 新建文本文档 (7).zip (420 Bytes, 下载次数: 1)

5 小时前 上传

点击文件名下载附件

html点提交按钮后给加个事件,让按钮变成不可点击状态即可,
这是前端方法,

后端一般通过CSFR_token来鉴定这是不是属于重复提交

如果是列表接口get的话,可以用debounce
如果是form表单的话,可以加个变量canCommit
点击提交按钮立即置为false,请求结束或者失败,置为true
本帖最后由 image 于 2022-4-13 23:44 编辑

HTML:

  1. <button mat-raised-button class="btn btn-linkedin mat-raised-button pull-right" (click)="onSubmit()" [disabled]="!loading">Submit</button>

复制代码

JS:

  1. onSubmit() {
  2. // Disable Create Button
  3. this.loading = true;
  4. this.xxxService.createXXX(this.formData)
  5.         .pipe(first())
  6.         .subscribe({
  7.                 next: (data) => {
  8.                         if (data.successful) {
  9.                                 this.commonService.showNotification(‘success’, ‘Creation successful’);
  10.                                 this.router.navigate([‘/xxx/detail/’ + data.returnedObject.xxId], { relativeTo: this.route });
  11.                         } else {
  12.                                 this.commonService.showNotification(‘danger’, data.errorStr);
  13.                                 this.loading = false;
  14.                         }
  15.                 },
  16.                 error: error => this.commonService.handleError(error),
  17.         });
  18. }

复制代码

点击之后按钮加个 disabled
html按钮怎么避免重复提交  比如用户提交开通邮箱[email protected] 我的想法是调用[email protected]变量来写一旦出现[email protected]按钮就不可用
但问题是我不知道怎么实现他
禁止不就好了
点一次就禁用 后端如果返回开通失败就重新启用

这个是永久有效吗
我更新了帖子

Lqdahv 发表于 2022-4-13 23:40
点一次就禁用 后端如果返回开通失败就重新启用

不知道怎么写