2 problèmes qui empêches la validation de fonctionner (et un troisième qui fait que la validation ne sera pas correcte dans pas mal de cas) :
Premier problème :
Code :
- var mail = document.getElementById("mail" )
|
Comme tu as un id sur ton <input>, autant l'utiliser, c'est plus fiable. Si tu veux vraiment utiliser document.getElementsByName, ne pas oublier que ça retourne un tableau d'élements (d'où le 's' à element dans le nom de la fonction). Ça donnerait "document.getElementsByName("email" )[0]"
Deuxième problème :
Code :
- if (!filter.test(mail.value))
|
La fonction à appeler est "test".
Maintenant, il y a aussi plusieurs problèmes dans ton expression régulière. Par exemple "toto+titi@test.com" ne passera pas la validation, alors que c'est une adresse correcte. Autre problème : "toto@aaaa" ou "toto@a@a" par exemple seront acceptés (le problème ici est que le '.' n'est pas escapé dans la deuxième partie de ta regexp, ça va donc matcher sur n'importe quel caractère)