Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

735
Views
Deshabilitar campos de entrada en forma reactiva

¡Ya intenté seguir el ejemplo de otras respuestas de aquí y no lo logré!

Creé un formulario reactivo (es decir, dinámico) y quiero deshabilitar algunos campos en un momento dado. Mi código de formulario:

 this.form = this._fb.group({ name: ['', Validators.required], options: this._fb.array([]) }); const control = <FormArray>this.form.controls['options']; control.push(this._fb.group({ value: [''] }));

mi html:

 <div class='row' formArrayName="options"> <div *ngFor="let opt of form.controls.options.controls; let i=index"> <div [formGroupName]="i"> <select formArrayName="value"> <option></option> <option>{{ opt.controls.value }}</option> </select> </div> </div> </div>

Reduje el código para facilitar. Quiero deshabilitar el campo de selección de tipo. Intenté hacer lo siguiente:

 form = new FormGroup({ first: new FormControl({value: '', disabled: true}, Validators.required), });

¡no funciona! alguien tiene una sugerencia?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

name: [{value: '', disabled: true}, Validators.required], name: [{value: '', disabled: this.isDisabled}, Validators.required],

o

 this.form.controls['name'].disable();
about 4 years ago · Santiago Trujillo Report

0

Presta atención

Si está creando un formulario utilizando una variable para la condición e intenta cambiarlo más tarde, no funcionará, es decir, el formulario no cambiará .

Por ejemplo

 this.isDisabled = true; this.cardForm = this.fb.group({ number: {value: null, disabled: this.isDisabled}, });

y si cambias la variable

 this.isDisabled = false;

la forma no cambiará. Deberías usar

this.cardForm.get('número').disable();

POR CIERTO.

Debe usar el método patchValue para cambiar el valor:

 this.cardForm.patchValue({ number: '1703' });
about 4 years ago · Santiago Trujillo Report

0

Lo resolví envolviendo mi objeto de entrada con su etiqueta en un conjunto de campos: el conjunto de campos debe tener la propiedad deshabilitada vinculada al booleano

 <fieldset [disabled]="isAnonymous"> <label class="control-label" for="firstName">FirstName</label> <input class="form-control" id="firstName" type="text" formControlName="firstName" /> </fieldset>
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!