坑系列 (Angular 2+ ) -> 設置[disabled]不好用的解決辦法


Form表單 -  禁用屬性[disabled] 不起效果

   在HTML標簽中,如果含有formControlName這個屬性,同時設置[disabled]不會起到禁用的效果。還有[attr.disabled]不起效果,提出解決辦法之前,我們首先了解一下可以起到禁用效果的屬性或方法。

禁用屬性: 

   關於禁用頁面上某個按鈕或輸入框等,我們可以用到[disabled]、[attr.disabled]、[class.disabled]。

 

   區別:

  • [attr.disabled] 會在標簽中添加disabled 屬性
  • [class.disabled] 會在標簽的class中添加一個disabled 的類

    注意:

  • disabled 屬性不能被用於div 標簽中,只能用於以下標簽:
    <button>    
    <fieldset>  
    <input> 
    <keygen>    
    <optgroup>  
    <option>    
    <select>    
    <textarea>

    Syntax that will not disable an element:

    <button>Not Disabled</button>
    <button [disabled]="false">Not Disabled</button>

    Syntax that will disable an element:

    <button disabled></button>
    <button disabled="true"></button>
    <button disabled="false"></button>
    <button [attr.disabled]="true"></button>
    <button [attr.disabled]="false"></button>
    <button [disabled]="true"></button>

     注意:

    • disable 屬性不管它的值是false還是true,都會禁用這個標簽;
    • Angular 不會禁用這個標簽,對於[disabled]="variable" 而 variable 是 false;
解決辦法:        
  • 可以使用:[attr.disabled]="isDisabled ? '' : null" ('' 表示禁用,null表示不禁用);

  • form 表單中,我們可以在formgroup 中,直接設定 id: new FormControl({value: '', disabled: true}, Validators.required),或者 this.myForm.controls['id'].disable();或 this.myForm.controls['id'].enable();

 

參考鏈接:

    最后感謝各位大神的分享,才有今天的總結,有什么不足的地方,望各位指正,感謝~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM