Angular Material: How to validate Autocomplete against suggested options?

前端 未结 3 1197
感情败类
感情败类 2020-12-18 20:07

We have an autocomplete input with required validation. When a user searches for an option by entering a query (but doesn\'t pick any of the options) then the i

3条回答
  •  Happy的楠姐
    2020-12-18 20:21

    For those who may need a similar approach. Here's my solution. I've built a custom validation rule according to my needs.

    SELECTBOX_VALUE: [
      null,
      Validators.compose([
        Validators.required,
        FormCustomValidators.valueSelected(this.myArray),
      ]),
    ];
    
    export class FormCustomValidators {
      static valueSelected(myArray: any[]): ValidatorFn {
        return (c: AbstractControl): { [key: string]: boolean } | null => {
          let selectboxValue = c.value;
          let pickedOrNot = myArray.filter(
            (alias) => alias.name === selectboxValue
          );
    
          if (pickedOrNot.length > 0) {
            // everything's fine. return no error. therefore it's null.
            return null;
          } else {
            //there's no matching selectboxvalue selected. so return match error.
            return { match: true };
          }
        };
      }
    }
    

提交回复
热议问题