L'attribut obligatoire en HTML5 est très pratique:
<input type="text" required>
Mais il permet toujours aux utilisateurs de saisir des espaces blancs uniquement. Existe-t-il une solution uniquement HTML pour cela?
Utilisez l'attribut pattern
combiné avec l'attribut required
. Et assurez-vous d'inclure également un attribut title
, car la plupart des navigateurs insèrent le texte du titre dans la bulle contextuelle de validation.
<input required pattern=".*\S+.*" title="This field is required">
Le .*\S+.*
le modèle requiert au moins un caractère non blanc, mais autorise également les caractères blancs (espaces, tabulations, retours chariot, etc.) au début ou à la fin. Si vous ne voulez pas que l'utilisateur puisse mettre des espaces au début/à la fin, utilisez plutôt ceci:
<input required pattern="\S+" title="This field is required">
Essayez l'attribut pattern
. Vous aurez besoin de ne expression régulière qui spécifie 'au moins un caractère' .
Vous voulez probablement ceci:
<input type="text" required pattern="\S(.*\S)?">
(Au moins un caractère non blanc et aucun blanc au début ou à la fin de l'entrée)
Ou si les espaces au début et à la fin sont corrects, alors ceci:
<input type="text" required pattern=".*\S.*">