양식 유효성 검사에 조건 추가

Skydev

양식에 조건을 추가하려고합니다. 기본적으로 확인란이 선택되어있는 경우에만 일부 필드를 필수로 설정하고 싶습니다. 다음은 내 코드입니다.

  onCreateContactDetailsForm() {
    this.contactDetailsForm = new FormGroup({
      firstName: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
      mobileNumber: new FormControl(null, [Validators.required, Validators.pattern('^([0|\+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$')]),
      surname: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
      workEmail: new FormControl(null, [Validators.email]),
      identityValue: new FormControl('', [Validators.required]),
      personalEmail: new FormControl(null, [Validators.email]),
      exitDate: new FormControl('', [Validators.required]),
      exitNoticeDate: new FormControl('', [Validators.required]),
      amount: new FormControl('', [Validators.pattern('^$|^[0-9]*$')]),
      dateOfBirth: new FormControl('', [Validators.required]),
      indebtedToEmployer: new FormControl(false),
      isHrEmailAddress: new FormControl(false),
      if(isHrEmailAddress) {
        address1: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
        address2: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
        address3: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
        postalCode: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
        postalCountry: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\- ]*$')]),
      }
    });
  }

내 편집기 에서이 오류를 제공하므로 if 문을 여기에 넣을 수 없습니다. Type '(isHrEmailAddress: any) => void' is missing the following properties from type 'AbstractControl': validator, asyncValidator, _parent, _asyncValidationSubscription, and 44 more.

이 작업을 수행하는 더 쉬운 방법이 있습니까?

첼라 판 w

Angular FormGroup API에는 addControl 메서드가 있으며이를 사용하여 FormControl을 동적으로 추가 할 수 있습니다.

isHrEmailAddress 컨트롤 valueChanges 메서드를 사용하여 isHrEmailAddress 확인란이 선택되었는지 여부를 수신합니다.

component.ts

constructor() {
    this.onCreateContactDetailsForm();
     this.addControls(this.isHrEmailAddressControl.value);
    this.isHrEmailAddressControl.valueChanges.subscribe(isHrEmailAddress => {
      this.addControls(isHrEmailAddress);
    });
  }

  addControls(isHrEmailAddress) {
    const controls = {
      address1: new FormControl(null, [
        Validators.required,
        Validators.pattern("^[a-zA-Z- ]*$")
      ]),
      address2: new FormControl(null, [
        Validators.required,
        Validators.pattern("^[a-zA-Z- ]*$")
      ]),
      address3: new FormControl(null, [
        Validators.required,
        Validators.pattern("^[a-zA-Z- ]*$")
      ]),
      postalCode: new FormControl(null, [
        Validators.required,
        Validators.pattern("^[a-zA-Z- ]*$")
      ]),
      postalCountry: new FormControl(null, [
        Validators.required,
        Validators.pattern("^[a-zA-Z- ]*$")
      ])
    };
    if (isHrEmailAddress) {
      Object.keys(controls).forEach(key => {
        this.contactDetailsForm.addControl(key, controls[key]);
      });
    } else {
      Object.keys(controls).forEach(key => {
        this.contactDetailsForm.removeControl(key);
      });
    }
  }

component.html

<form [formGroup]="contactDetailsForm">
    <input type="text" formControlName="firstName">
    <hr>
    <input type="checkbox" formControlName="isHrEmailAddress">
    <hr>
    <div *ngIf="isHrEmailAddressControl.value">
        <input type="text" formControlName="address1">
  </div>
</form>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

특정 조건에서 Angular2 양식 유효성 검사

분류에서Dev

Yup을 사용한 조건부 양식 유효성 검사

분류에서Dev

조건부 Django 양식 유효성 검사

분류에서Dev

조건부 Angular JS 하위 양식 유효성 검사

분류에서Dev

조건이 충족되면 양식 유효성 검사

분류에서Dev

PHP 세션 변수를 참조하는 양식 제출 전에 유효성 검사 추가

분류에서Dev

반응 양식의 조건부 사용자 지정 유효성 검사가 작동하지 않음-Angular 9

분류에서Dev

Alpacajs 유효성 검사 : 단추가 유효성 검사를 건너 뛰고 양식을 제출하도록 허용 할 수 있습니까?

분류에서Dev

cakephp 3 조건부 유효성 검사 추가

분류에서Dev

유효성 검사 오류에 따른 조건부 서식

분류에서Dev

유효성 검사 오류에 따른 조건부 서식

분류에서Dev

양식과 관련이없는 유효성 검사 추가

분류에서Dev

AngularJS-양식 제출시 추가 유효성 검사 수행

분류에서Dev

입력 필드 조합에 대한 양식 유효성 검사

분류에서Dev

반응 후크 양식을 사용한 조건부 유효성 검사

분류에서Dev

Angular의 formArray에 동적 양식 필드 및 유효성 검사 추가

분류에서Dev

Django 양식에 MinLengthValidator 유효성 검사기를 추가하는 방법

분류에서Dev

조건에 대한 Rails 4 유효성 검사 평가

분류에서Dev

포함 된 양식에 대한 유효성 검사를 조건부로 비활성화

분류에서Dev

HTML 양식 유효성 검사-라디오 버튼 선택에 따른 조건부

분류에서Dev

양식 유효성 검사

분류에서Dev

한 글자 후에 양식 유효성 검사가 무효화 됨

분류에서Dev

양식 시간 초과시 유효성 검사 건너 뛰기

분류에서Dev

Rails 5 : 조건부 사용자 지정 유효성 검사 추가

분류에서Dev

JavaScript 양식 유효성 검사 상자 강조

분류에서Dev

Flask에서 양식 유효성 검사

분류에서Dev

Coldfusion에서 양식 유효성 검사

분류에서Dev

Laravel에서 양식 유효성 검사

분류에서Dev

CodeIgniter 양식 유효성 검사, 동적으로 추가 된 필드

Related 관련 기사

  1. 1

    특정 조건에서 Angular2 양식 유효성 검사

  2. 2

    Yup을 사용한 조건부 양식 유효성 검사

  3. 3

    조건부 Django 양식 유효성 검사

  4. 4

    조건부 Angular JS 하위 양식 유효성 검사

  5. 5

    조건이 충족되면 양식 유효성 검사

  6. 6

    PHP 세션 변수를 참조하는 양식 제출 전에 유효성 검사 추가

  7. 7

    반응 양식의 조건부 사용자 지정 유효성 검사가 작동하지 않음-Angular 9

  8. 8

    Alpacajs 유효성 검사 : 단추가 유효성 검사를 건너 뛰고 양식을 제출하도록 허용 할 수 있습니까?

  9. 9

    cakephp 3 조건부 유효성 검사 추가

  10. 10

    유효성 검사 오류에 따른 조건부 서식

  11. 11

    유효성 검사 오류에 따른 조건부 서식

  12. 12

    양식과 관련이없는 유효성 검사 추가

  13. 13

    AngularJS-양식 제출시 추가 유효성 검사 수행

  14. 14

    입력 필드 조합에 대한 양식 유효성 검사

  15. 15

    반응 후크 양식을 사용한 조건부 유효성 검사

  16. 16

    Angular의 formArray에 동적 양식 필드 및 유효성 검사 추가

  17. 17

    Django 양식에 MinLengthValidator 유효성 검사기를 추가하는 방법

  18. 18

    조건에 대한 Rails 4 유효성 검사 평가

  19. 19

    포함 된 양식에 대한 유효성 검사를 조건부로 비활성화

  20. 20

    HTML 양식 유효성 검사-라디오 버튼 선택에 따른 조건부

  21. 21

    양식 유효성 검사

  22. 22

    한 글자 후에 양식 유효성 검사가 무효화 됨

  23. 23

    양식 시간 초과시 유효성 검사 건너 뛰기

  24. 24

    Rails 5 : 조건부 사용자 지정 유효성 검사 추가

  25. 25

    JavaScript 양식 유효성 검사 상자 강조

  26. 26

    Flask에서 양식 유효성 검사

  27. 27

    Coldfusion에서 양식 유효성 검사

  28. 28

    Laravel에서 양식 유효성 검사

  29. 29

    CodeIgniter 양식 유효성 검사, 동적으로 추가 된 필드

뜨겁다태그

보관