Utiliser setCustomValidity
:
document.addEventListener("DOMContentLoaded", function() {
var elements = document.getElementsByTagName("INPUT");
for (var i = 0; i < elements.length; i++) {
elements[i].oninvalid = function(e) {
e.target.setCustomValidity("");
if (!e.target.validity.valid) {
e.target.setCustomValidity("This field cannot be left blank");
}
};
elements[i].oninput = function(e) {
e.target.setCustomValidity("");
};
}
})
J'ai changé à la vanille JavaScript à partir de Mootools comme suggéré par itpastorn dans les commentaires, mais vous devriez être en mesure de travailler sur la Mootools équivalent si nécessaire.
--edit
J'ai mis à jour le code ici comme setCustomValidity
fonctionne légèrement différemment de ce que j'ai compris quand j'ai d'abord répondu. Si setCustomValidity
est réglé sur autre chose que la chaîne vide, il fera le champ pour être considéré comme non valide; par conséquent, vous devez la désactiver avant de tester la validité, vous ne pouvez pas régler et oublier.
--modifier
Comme l'a souligné @thomasvdb de commentaire ci-dessous, vous devez effacer la coutume de validité dans certains cas à l'extérieur de l' invalid
sinon il peut y avoir un supplément de passer à travers l' oninvalid
gestionnaire de l'effacer.