@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
33 lines (26 loc) • 925 B
JavaScript
import DprFormValidationClass from './DprFormValidationClass.mjs'
export default class DprGenericForm extends DprFormValidationClass {
static getModuleName() {
return 'dpr-generic-form'
}
initialise() {
this.errorMessages = []
this.mainForm = document.getElementById('dpr-form')
this.mainForm.noValidate = true
this.formFields = Array.from(this.mainForm.elements)
this.errorSummary = document.getElementById('dpr-form-summary--error-summary')
this.submitButton = document.getElementById('dpr-form-summary--form-submit')
this.initSubmitButton()
this.initFormValidation(this.formFields)
this.mainForm.classList.remove('dpr-form--hidden')
}
initSubmitButton() {
this.submitButton.addEventListener('click', (e) => {
e.preventDefault()
this.validateForm()
if (this.mainForm.checkValidity()) {
this.mainForm.requestSubmit()
}
})
}
}