I am using material.io Text Field components for a simple web form:
HTML (just for the email field to keep it short)
<div class="inline-text-field-container">
<div class="tf-email mdc-text-field mdc-text-field--outlined">
<input class="mdc-text-field__input" id="email" />
<div class="mdc-notched-outline">
<div class="mdc-notched-outline__leading"></div>
<div class="mdc-notched-outline__notch">
<label for="email" class="mdc-floating-label">Email</label>
</div>
<div class="mdc-notched-outline__trailing"></div>
</div>
</div>
<div class="mdc-text-field-helper-line">
<div
class="mdc-text-field-helper-text mdc-text-field-helper-text--validation-msg"
role="alert"
aria-hidden="true"
>
Please enter your email
</div>
</div>
</div>
JavaScript
import { MDCTextField } from '@material/textfield';
import { MDCRipple } from '@material/ripple';
import { MDCTextFieldHelperText } from '@material/textfield/helper-text';
const tfEmail = new MDCTextField(document.querySelector('.tf-email'));
const tfPassword = new MDCTextField(document.querySelector('.tf-password'));
const btnSubmit = new MDCRipple(document.querySelector('.mdc-button'));
document.querySelector('.btn-submit').addEventListener('click', onSubmitHandler);
function onSubmitHandler(e) {
// Validations happen here
// How do I change the email field's state to a validation error and show the validation text?
}
I can't find any working examples of how to add error validation states to the TextField component (the red outline) and display the help text "Invalid email address" (as per the screenshot).
Can you push me in the right direction?
