Почему при отправке формы не фиксируются значения по умолчанию, которые я установил во входном теге и которые доступны только для чтения? - PullRequest
0 голосов
/ 08 октября 2019

У меня есть кнопка, которая открывает модальную форму, что тег <input> в этой форме был установлен как readonly, а значение по умолчанию values="{{data.sample}} заполнено данными, которые я извлек через вызов API. Я только хотел, чтобы пользователь открыл модальное окно и увидел детали записи, после чего он может нажать кнопку «Отправить», чтобы отправить данные, заполненные по умолчанию. Я могу видеть эти {{data.sample}} в своем поле ввода, и пользователь не сможет редактировать перед отправкой.

Однако, когда я нажимал кнопку отправки, я не передавал эти значения вместе с формой,Мои значения формы пусты и проверили на моей консоли, что все значения формы пусты. Я попытался создать пример ввода, чтобы я мог что-то ввести, чтобы увидеть, работает ли вообще моя форма. Мне удалось захватить эти значения, введенные вручную, но не эти предварительно заполненные {{data.sample}} значения.

Я не понимаю, почему.

Это мой модальный режим в моем component.html:

<ng-template #content let-modal>
                  <div class="modal-header">
                    <h5 class="modal-title">Transfer to bank for processing?</h5>
                  </div>

                  <div class="modal-body">
                    <div class="container d-flex flex-column">
                      <div class="row flex no-gutters">
                        <div class="col-12 mh-100">
                          <form [formGroup]="accountPayableProcessForm" (ngSubmit)="onProcess()">

                            <div class="form-group row">
                              <div class="col-sm-6">
                                <label class="my-label" for="owningAccount">Owning Account</label>
                                <input type="text" formControlName="owningAccount" class="form-control"
                                  value="{{data.owningAccount}}" />
                              </div>
                              <div class="col-sm-6" style="padding-left: 10px;">
                                <label class="my-label" for="accountPayableID">Account Payable ID</label>
                                <input type="text" formControlName="accountPayableID" class="form-control"
                                  value="{{data.accountPayableID}}" readonly />
                              </div>
                            </div>
...
...
...

                            <div class="form-group modal-footer">
                              <div class="override-alert">
                                <alert></alert>
                              </div>
                              <button [disabled]="loading" class="btn btn-primary">Process</button>

                            </div>

                          </form>
                        </div>
                      </div>
                    </div>
                  </div>
                </ng-template>

Это мой onProcess() и мой formBuilder в моем component.ts:

ngOnInit(): void {
    this.accountPayableProcessForm = this.formBuilder.group({
      owningAccount: [''],
      accountPayableID: [''],
      buyerAccount: [''],
      buyerCode: [''],
      ...
    });
  }

onProcess() {
    this.submitted = true;
    this.loading = true;
    console.log(this.accountPayableProcessForm.value);

    this.accountPayableService
      .processAccountPayable(this.accountPayableProcessForm.value)
      .pipe(first())
      .subscribe(
        data => {
          this.loading = false;
          this.submitted = false;
          window.location.reload();
          this.alertService.success(
            'Success! Account payable has been transferred to bank for processing',
            true
          );
        },
        error => {
          this.alertService.error('Submission failed, please try again');
          this.loading = false;
        }
      );
  }

Я проверил свою консоль на console.log(this.accountPayableProcessForm.value);, все значения пустыowningAccount: "".

Это как-то связано с readonly или это что-то еще?

1 Ответ

0 голосов
/ 08 октября 2019

Вместо установки значений на входе. Установите значения для элемента управления вводом в вашей группе форм accountPayableProcessForm.

Вот пример

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