無効にするにはis_edit = true
で...
<input [disabled]="is_edit=='false' ? true : null" id="name" type="text" [(ngModel)]="model.name" formControlName="name" class="form-control" minlength="2">
単にtrue
またはfalse
に基づく入力を無効にしたいだけです。
私は以下を試してみました:
[disabled]="is_edit=='false' ? true : null"
[disabled]="is_edit=='true'"
[disabled]="is_edit"
disabled
の代わりにattr.disabled
を使用してみてください
<input [attr.disabled]="disabled ? '' : null"/>
問題を理解したと思います。この入力フィールドは、formControlName
を含めているため、リアクティブフォーム(?)の一部です。これは、is_edit
を使用して入力フィールドを無効にして何をしようとしているのかが機能していないことを意味します。たとえば、他の場合には機能する[disabled]="is_edit"
フォームでは、次のようなことをする必要があります。
toggle() {
let control = this.myForm.get('name')
control.disabled ? control.enable() : control.disable();
}
is_edit
を完全に失います。
入力フィールドをデフォルトとして無効にするには、フォームコントロールを次のように設定する必要があります。
name: [{value: '', disabled:true}]
ここにplunker
あなたは単にこれをすることができます
<input [disabled]="true" id="name" type="text">
<input [disabled]="isDisabled()" id="name" type="text">
export class AppComponent {
name:string;
is_edit : boolean = false;
isDisabled() : boolean{
return this.is_edit;
}
}
あなたは入力がいくつかのステートメントで無効にしたい場合。 disabledの代わりに[readonly]=true
またはfalse
を使用してください。
<input [readonly]="this.isEditable"
type="text"
formControlName="reporteeName"
class="form-control"
placeholder="Enter Name" required>
'false'
の代わりにfalse
を意味したと思います
また、[disabled]
はBoolean
を期待しています。 null
を返さないでください。
fedtuckの受け入れられた答え へのBelterのコメントに対する返事のメモ。
これは、 Mozillaのドキュメント に沿って、私が知っていることすべてには当てはまりません。
無効はtrueまたはfalseに等しい
Disabled属性が存在する場合、要素は値に関係なく無効にされます。 この例を参照してください
<input placeholder="i can be changed"/>
<input disabled placeholder="i can NOT be changed"/>
<input disabled="true" placeholder="i can NOT be changed"/>
<input disabled="false" placeholder="i can NOT be changed"/>
あなたが探しているのは disabled = "true" です。これが一例です。
<textarea class="customPayload" disabled="true" *ngIf="!showSpinner"></textarea>
Angular 7のTextBoxを無効にします
<div class="center-content tp-spce-hdr">
<div class="container">
<div class="row mx-0 mt-4">
<div class="col-12" style="padding-right: 700px;" >
<div class="form-group">
<label>Email</label>
<input [disabled]="true" type="text" id="email" name="email"
[(ngModel)]="email" class="form-control">
</div>
</div>
</div>
</div>
私はこの解決策を好む
HTMLファイル内:
<input [disabled]="dynamicVariable" id="name" type="text">
TSファイル内:
dynamicVariable = false; // true based on your condition
また、入力ボックス/ボタンを無効のままにする必要がある場合は、単に<button disabled>
または<input disabled>
が機能します。
単純に次のように使用できます
<input [(ngModel)]="model.name" disabled="disabled"
このようになった。だから私は好む。
is_edit
をboolean型にします。
<input [disabled]=is_edit id="name" type="text">
export class App {
name:string;
is_edit: boolean;
constructor() {
this.name = 'Angular2'
this.is_edit = true;
}
}