Как отобразить сообщение об ошибке проверки для элементов управления Dynami c в формах Angular? - PullRequest
0 голосов
/ 28 апреля 2020

Я работаю с формами Dynami c, в которых поля формы взяты из объекта JSON. Есть два поля, одно для оплаты, а другое для типа оплаты. Оба связаны друг с другом. Если какое-либо из этих полей имеет значения, заполните другое поле, как требуется. Я добавил валидацию, используя

form.controls[element].setValidators([Validators.required]);
form.controls[element].updateValueAndValidity();

Валидаторы работают хорошо при использовании этого кода. Но проблема в том, что validator message не отображается, если поле имеет недопустимый класс ng. Только граница red colour.

Дайте мне предложение по этой проблеме. Добавление изображения одного поля с ошибкой проверки

Image of required field

Добавление jQuery, я уже пробовал.

$("body").off('focus','[class*="relatedField"]').on('focus','[class*="relatedField"]', (event)=> { 
    self.relatedFieldsArray.forEach(fieldArray => {
      let key = fieldArray.key;
        $("body").off('change focusout','.'+fieldArray.className).on('change focusout','.'+fieldArray.className, (event)=>{
            let changedValue = event.target.value;
            if( changedValue != ''){
                fieldArray.relatedFields.forEach(element => {
                  $('.relatedField-'+element).addClass('star-symbol')
                  self.form.controls[element].setValidators([Validators.required]);
                  self.form.controls[element].updateValueAndValidity();
                });
            }
            else{
              fieldArray.relatedFields.forEach(element => {
                if($('.relatedField-'+element).val() == ""){
                    $('.relatedField-'+element).removeClass('star-symbol');
                    self.form.controls[element].clearValidators();
                    self.form.controls[element].updateValueAndValidity();
                }else{
                   $('.relatedField-'+key).addClass('star-symbol')
                  self.form.controls[key].setValidators([Validators.required]);
                  self.form.controls[key].updateValueAndValidity();
                }

              });
            }
        });

    });

Здесь я добавляю класс к полю, класс начинается с 'relatedField-' и имени поля, если оно связано с другими полями. Входные поля, связанные с этим полем, добавляются в виде массива с именем relatedField. этот массив, имя нового класса и ключ входного поля добавлены в relatedFieldArray как JSON объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...