J'utilise le formulaire Angular Reactive dans mon application Angular et j'ai une entrée <select> où la valeur par défaut est -1, en définissant Validators.required même si la valeur est toujours -1, elle sera acceptée, alors comment pourrait-on je fais un validateur pour accepter la valeur si est valide et est != -1?

J'essayais de faire quelque chose comme ça mais ça ne marche pas :

coperti: new FormControl(-1, [Validators.required, Validators.pattern(`[\d]`)]),
0
Kasper Juner 17 nov. 2020 à 19:34

1 réponse

Meilleure réponse

Vous pouvez créer un validateur personnalisé :

form = new FormGroup({
    coperti: new FormControl("", [
      (c) => {
        // Here the c is your form control and we check if the  value is -1 or 0
        if (c.value === -1 || c.value === 0) {
        // if the condition is met we return the error
          return { wrong: true };
        }
        // if the condition isn't met (e.g. the form is valid) we return null, which
        // will not apply errors on the form control
        return null;
      }
    ])
  });

Tous les validateurs sont des fonctions simples, alors n'hésitez pas à créer n'importe quel validateur personnalisé si nécessaire, ne vous limitez pas uniquement à ceux intégrés.

2
Християн Христов 17 nov. 2020 à 16:47