2017-03-16 26 views
9

में इनपुट फ़ील्ड को अक्षम करें मैंने पहले से ही अन्य उत्तरों के उदाहरण का पालन करने का प्रयास किया है और मैं सफल नहीं हुआ!प्रतिक्रियाशील फॉर्म

मैंने एक प्रतिक्रियाशील रूप (यानी गतिशील) बनाया है और मैं किसी भी समय किसी भी फ़ील्ड को अक्षम करना चाहता हूं। मेरे प्रपत्र कोड:

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: [''], 

       })); 

मेरी एचटीएमएल:

<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> 

मैं सुविधा के लिए कोड कम कर दिया। मैं प्रकार के चयन के क्षेत्र को अक्षम करना चाहता हूं। मैंने निम्नलिखित करने की कोशिश की:

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

काम नहीं कर रहा है! क्या किसी के पास कोई सलाह है?

+0

का चयन कैसे निष्क्रिय किया जा सकता है, जब आप कुछ formcontrol '' first' कहा जाता है :) – Alex

+0

निष्क्रिय करने के लिए कोशिश कर रहे हैं यह सिर्फ टाइपो था। मैं चयन अक्षम करना चाहता हूँ। क्या आप मेरी मदद कर सकते हैं? –

+0

क्या आप एक प्लंकर को पुन: पेश कर सकते हैं? – Alex

उत्तर

0

यदि आप first (फॉर्मcontrol) को अक्षम करना चाहते हैं तो आप नीचे दिए गए कथन का उपयोग कर सकते हैं।

this.form.first.disable();

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

या

this.form.controls['name'].disabled(); 
+4

का चयन करें, आपका मतलब अक्षम() सही है? – UUHHIVS

4

वेतन ध्यान करता है, तो आप एक फार्म के हालत के लिए चर का उपयोग कर बना सकते हैं और बदलने के लिए इसके बाद यह काम नहीं करेगा कोशिश है, अर्थात प्रपत्र नहीं बदलेगा।

उदाहरण

this.isDisabled = true; 

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

लिए

और यदि आप चर

this.isDisabled = false; 

बदलने प्रपत्र नहीं बदलेगा। आपको

यह.cardForm.get ('संख्या') का उपयोग करना चाहिए। अक्षम();

बीटीडब्ल्यू।

आप को बदलने के मूल्य के लिए patchValue विधि का उपयोग करना चाहिए?

this.cardForm.patchValue({ 
    'number': '1703' 
}); 
+0

मैंने अपना उत्तर अपडेट किया –

+0

मेरे लिए ठीक काम करता है – Amir

संबंधित मुद्दे