表单提交期间禁用按钮

Posted

技术标签:

【中文标题】表单提交期间禁用按钮【英文标题】:Disable button during form submit 【发布时间】:2019-11-27 17:21:56 【问题描述】:

当表单发送到服务器时,我想在提交期间禁用按钮表单。到目前为止,这是我找到的解决方案:

clear() 
    this.count++

    this.formGroup.get('name').reset(null);
     ..........
    if (this.count === 2) 
        this.count = 1;
        document.querySelector('.create-btn').setAttribute('disabled', '');
    

    

    isDisabled() 
    document.querySelector('.create-btn').removeAttribute("disabled");

html 代码:

<form [formGroup]="formGroup" (ngSubmit)="submit()" >
    <div class="form-group" [ngClass]="errorClasses('name')">
        <label>Name</label>
        <input type="text" class="form-control name" formControlName="name" (click)="isDisabled()">
        <div class="help-block form-text with-errors form-control-feedback" *ngIf="controlHasErrors('name')">
            controlValidateMessage('name')
        </div>
    </div>

    <div class="row">
        <div class="col-sm-6">
            <div class="form-group">
                <button type="button" class="btn btn-block"
                    [ngClass]="'btn-success': formGroup.get('enabled').value, 'btn-light': !formGroup.get('enabled').value"
                    (click)="selectTnx('enabled')">
                        <i class="fa fa-check mr-2"*ngIf="formGroup.get('enabled').value"></i>Enabled
                </button>
            </div>
        </div>
    </div>
</form>

有没有其他方法可以在提交表单时禁用提交按钮?

【问题讨论】:

我认为这个问题的答案可能对您有所帮助。 ***.com/questions/37159827/… 【参考方案1】:

如果您想要某种复杂的样式,您可以。如果你需要更简单的东西。尝试这样的事情::

HTML
<input [disabled]="sendDisabled" type="button" value="Send">
...
Angular-js-class
sendDisabled = false

【讨论】:

【参考方案2】:

您只需将按钮设置为disabled

<button type="button" class="btn btn-block" [disabled] ="btnDisabled"
[ngClass]="'btn-success': formGroup.get('enabled').value, 'btn-light': !formGroup.get('enabled').value"
(click)="selectTnx('enabled')"><i class="fa fa-check mr-2"
*ngIf="formGroup.get('enabled').value"></i>Enabled</button>

现在点击按钮,您可以简单地在您的组件中设置btnDisabled = true。这会将按钮设置为禁用并对其应用适当的样式。

【讨论】:

以上是关于表单提交期间禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章

多次点击提交后如何只提交一次表单?

防止使用 angular.js 提交多个表单 - 禁用表单按钮

使用按钮单击或表单提交禁用注册按钮,两种方式都会阻止表单提交

AngularJs:为啥我们总是禁用表单提交按钮?

如何在功能测试期间单击不是表单提交按钮的按钮

单击属于表单的另一个按钮时如何禁用提交表单