私は、読み取り専用入力を持つテンプレート駆動型を持っています。ユーザーが入力をクリックすると、日付ピッカーが表示されます。ユーザーが日付を選択すると、入力フィールドに情報が入力されます。しかし、submitをクリックすると、その入力からのデータはありません。他のフィールドは機能します。したがって、この場合には、私が角2テンプレート入力とカスタム入力
コンソール出力の出力を得る:
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()から全てのコードを削除しようとしており、private date = "1234"を設定しようとしています。私がそれをすると、入力フィールドに1234が入力されていることがわかります。ただし、送信時には、日付が ""の同じ出力が表示されます。私は設定値= {{date}}がフォームで動作しないと推測していますか?私はハードコード値= "1234"をhtmlにしようとしましたが、結果は同じです。しかし、私が読み解きを取り除き、型を入れると、フォームはそのデータを上手く取得するようです。 – user172902
もう一つの問題があります。入力した名前は** date **で、コンポーネントの変数名は** date **です。だから、代わりに日付の値をピックアップすると、それは混乱の原因になります。 –
それを指摘してくれてありがとう。私はそれを変更しました。また、私の前のコメントを参考にしてください。あなたの助けに感謝します – user172902