У меня есть шаблон с форматированием только для чтения. Когда пользователь нажимает на вход, появляется панель выбора даты. После того, как пользователь выбирает дату, поле ввода заполняется информацией. Однако, когда я нажимаю кнопку «Отправить», данных не поступает с этого ввода. Другие области работают. Таким образом, в этом случае, я получаю выходУгловая форма с шаблоном с настраиваемым вводом
Консоль вывода:
Object {refNumber: "215170", date: ""}
HTML код:
<form [formGroup]="myForm" novalidate (ngSubmit)="onSubmit(myForm)">
<div class="form-group">
<label>Reference Number</label>
<input type="text" class="form-control" formControlName="refNumber">
</div>
<!--Date Picker-->
<input (focus)="toggleDatePicker(true)" readonly value={{date}} class="form-control" formControlName="date" />
<date-picker *ngIf="showDatePicker" [initDate]="date" (onDatePickerCancel)="toggleDatePicker($event)" (onSelectDate)="setDate($event)"
ngDefaultControl></date-picker>
</form>
код компонента
export class AppComponent implements OnInit {
public myForm: FormGroup;
constructor(private _fb: FormBuilder) { }
ngOnInit() {
this.myForm = this._fb.group({
refNumber: ['', [Validators.required, Validators.minLength(5)]],
date: [''],
});
}
onSubmit(formOutput: FormGroup) {
console.log(formOutput.value);
alert('Submit this data to database')
}
// Date TimePicker
private date: any;
private showDatePicker: boolean;
// Date Pciker
toggleDatePicker(status: boolean): void {
this.showDatePicker = status;
}
setDate(date: any): void {
this.date = date;
}
}
--- -------Обновить--------------------- ----- Я создал новый проект, чтобы воспроизвести эту проблему. Проблема все еще существует. Вот видео о том, что происходит в этом проекте. Для меня это похоже на то, что входное значение обновляется только при вводе чего-либо. Любое жестко закодированное значение или в этом случае дата, в которую передается, не обновляет фактическое значение ввода за сценой?
https://www.youtube.com/watch?v=4xc3m6qbILc
https://github.com/eddy80310/formsissue
Формирование его не похоже на проблему. Поскольку я попытался удалить весь код из setDate() и установить закрытую дату = "1234". Когда я это делаю, я вижу, что поле ввода заполняется 1234, однако при отправке я все еще вижу тот же вывод, что и дата. Я предполагаю, что значение параметра = {{date}} не работает с формой? Я даже попытался записать код x = "1234" в html, и результат будет таким же. Однако, если я избавлюсь от readony и типа вещей, форма, похоже, получит данные в таком случае – user172902
Есть еще одна проблема. У вас есть имя ввода как ** дата **, а также переменная в вашем компоненте называется ** date **! Поэтому вместо того, чтобы поднять значение даты, это вызывает беспорядок. –
Спасибо, что указали это. Я изменил его. Также, пожалуйста, см. Мой предыдущий комментарий для получения дополнительной информации. Большое спасибо за вашу помощь – user172902