Angular / typescript как сделать обязательными 2 из 4 полей ввода

#angular #typescript

#angular #typescript

Вопрос:

решения по проектированию подсистемы библиотеки фреймворков waarom

привет! я новичок в angular и столкнулся с проблемой, которую, похоже, не могу решить должным образом, что означает, что я мог бы сделать действительно длинный и большой оператор if, но тогда я бы ничему из этого не научился. Проблема в том, что у меня есть большая форма, которую можно разделить на 4 раздела, в каждом разделе есть 5 полей ввода. для перехода на следующую веб-страницу я хочу потребовать, чтобы вы полностью заполнили 2 или более разделов.

Я попробовал следующее

 tabel11: new FormGroup({
        tabel11A: this.tabel11A,
        tabel11B: this.tabel11B,
        tabel11C: this.tabel11C,
        tabel11D: this.tabel11D,
        tabel11E: this.tabel11E
      })
 
 if(this.inputTabelForm.get('tabel9').valid){
      i = 1;
    }
    if(this.inputTabelForm.get('tabel10').valid){
      i = 1;
    }
    if(this.inputTabelForm.get('tabel11').valid){
      i = 1;
    }
    if(i >= 2){
      return true;
    }
 

кажется, что когда ничего не заполнено, поэтому, когда все поля равны нулю, они по-прежнему воспринимаются как действительные, что делает это намного сложнее для меня.
Если кто-то знает, как вы должны решить эту проблему, это было бы здорово!

Комментарии:

1. Что именно это .tabel11A ?

Ответ №1:

При проверке this.inputTabelFrom.get('tabelx') вы проверяете всю подтаблицу как объект, а не все конкретные экземпляры подтаблицы. Если вы хотите проверить, заполнены ли все входные данные в одной из подчиненных форм, вам нужно будет проверить все входные данные этой подчиненной формы. Для получения дополнительной информации о проверке формы с помощью Angular, пожалуйста, проверьте это.

Комментарии:

1. Я посмотрел на ссылку и до сих пор не совсем понимаю, как вы будете перебирать подчиненную форму. Я могу сделать this.inputTabelForm.get(tabelx.tabelxA).value это, однако это все равно даст мне действительный ответ, даже если ничего не было заполнено. я просто не знаю, как это проверить, и чем изменить, чтобы требовалось только 2

2. Если вы поделитесь большей частью своего кода (например, включая HTML, который вы используете), либо в качестве дополнения к вашему исходному сообщению, либо в виде фрагмента кода, тогда я смогу помочь вам немного лучше.