【问题标题】:Disable button using GetElementsByClassName in Angular在 Angular 中使用 GetElementsByClassName 禁用按钮
【发布时间】:2019-08-15 10:49:26
【问题描述】:

I expect such a result 我使用 primeNG 组件 FileUpload。我有树形按钮:选择、上传和取消。我想尝试在使用类名上传文件后禁用“上传”和“取消”等按钮。但这行不通。

<p-fileUpload 
  customUpload="true" 
  multiple="multiple"
  (uploadHandler)="onUpload($event)"
  (click)="disableButton()">
</p-fileUpload>

import { Component} from '@angular/core';
@Component({
  selector: 'app-file-upload',
  templateUrl: './file-upload.component.html',
  styleUrls: ['./file-upload.component.css']
})
export class FileUploadComponent {
pBtn: any = document.getElementsByClassName("ui-state-disabled") as HTMLCollectionOf<HTMLInputElement>;

disableButton(){
this.pBtn[0].disabled = true;
}

}

【问题讨论】:

    标签: angular primeng


    【解决方案1】:

    禁用的按钮是属性而不是样式。

    您可以执行类似于下面的操作,并将 disabled 属性绑定到您可以在上传文件时更改的某个布尔值。 Angular 提供了这样的数据绑定,因此您不必直接从 typescript 文件中修改 dom。

    &lt;button [disabled]="disabled"&gt;&lt;/button&gt;

    disable() {
        this.disabled = false;
    }
    

    【讨论】:

    • 这绝对是禁用按钮的方法。尽可能避免直接操作 DOM。
    【解决方案2】:

    As PrimeNG dosumentation says:

    • showUploadButton - 为客户端 FileUpload 定义上传按钮的可见性。
    • showCancelButton - 定义客户端 FileUpload 的取消按钮的可见性。

    您可以通过属性showUploadButtonshowButtons 隐藏按钮或仅上传按钮。这取决于你需要什么:

        <p-fileUpload 
          #myfileUpload          
          [disabled]="isDisabled"
          [showUploadButton]="isShowUploadButton"
          [showCancelButton]="isSshowCancelButton"
          customUpload="true" 
          multiple="multiple"
          (uploadHandler)="onUpload($event)"
          (click)="disableButton()">
        </p-fileUpload>
    

    打字稿:

    isShowUploadButton = true;
    isSshowCancelButton = true;
    isDisabled = false;
    
    
    disableButton(){        
        this.isDisabled = true;
        this.isShowUploadButton = false;
        this.isSshowCancelButton = false;
    }
    

    【讨论】:

    • 像这样直接修改 DOM 应该只是边缘情况。绑定到按钮的disabled 属性更常见。
    • @ScarlettO'Hara 在 fileUpload 控件的 API 中没有像 disableUploadButtondisableCancelButton 这样的属性。所有可用的属性都在这里primefaces.org/primeng/#/fileupload
    • @ScarlettO'Hara 但是,如果您编写样式,那么用户将有机会点击您的按钮。但是,这是不希望的。
    • @ScarlettO'Hara 通过应用您刚刚修改用户界面的样式。但是,用户将可以执行您的按钮 disableUploadButton disableCancelButton
    猜你喜欢
    • 1970-01-01
    • 2021-04-16
    • 2018-03-05
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 2014-05-11
    相关资源
    最近更新 更多