Template driven forms in Angular Datetimepicker component
27 Apr 20244 minutes to read
The form can be build with Angular template syntax easily along with form specific directives.
This template-driven forms uses the ng
directives in view to handle the forms controls.
- To enable the template-driven, import the FormsModule into corresponding app component.
For more details about template-driven Forms refer to:https://angular.io/guide/forms#template-driven-forms.
-
In angular forms mentioning the name is must to process as form elements.
-
Mention the
name
attribute to DateTimePicker element which will be used to identify the form element. To register an DateTimePicker element to ngForm, give the ngModel to it so the FormsModule will automatically detect the DateTimePicker as a form element.
After that, the DateTimePicker value will be selected based on the ngModel value.
The following example demonstrates template driven forms with DateTimePicker component.
import { BrowserModule } from '@angular/platform-browser'
import { NgModule } from '@angular/core'
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { DateTimePickerModule } from '@syncfusion/ej2-angular-calendars'
import { Component,ViewChild, Inject } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { DateTimePickerComponent } from '@syncfusion/ej2-angular-calendars';
class User {
public datetime?: Date;
constructor() {
}
}
@Component({
imports: [ FormsModule, ReactiveFormsModule, DateTimePickerModule],
standalone: true,
selector: 'app-root',
templateUrl: './template.html'
})
export class DefaultDateTimePickerComponent {
constructor() {}
user?: User | any;
ngOnInit() {
this.user = new User();
}
onSubmit(userForm: any) {
(userForm.valid) ? alert("submitted"): alert("form is invalid");
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
<div>
<form #userForm="ngForm" (ngSubmit)="onSubmit(userForm)">
<div class="form-group">
<ejs-datetimepicker id="datetimepicker" name="datetime" [(ngModel)]="user.datetime" #date="ngModel" width="300px" required></ejs-datetimepicker>
<div *ngIf="userForm.invalid && (userForm.dirty || userForm.touched)" class="alert alert-danger formerror">
Valid date and time is required
</div>
<div *ngIf="userForm.valid && (userForm.dirty || userForm.touched)" class="alert alert-success formerror">
<table>
<tr>
<td style="width:50%">Selected value: </td>
<td class="formtext "></td>
</tr>
</table>
</div>
</div>
<div class="buttons">
<button type="submit" class="e-btn e-success">Submit</button>
<button type="reset" class="e-btn e-warning">Reset</button>
</div>
</form>
<div class="dataclass">userForm.value: </div>
<div class="dataclass">userForm.valid: </div>
</div>
<style>
form {
margin-top: 50px;
}
</style>