2015-08-22 2 views
2

appel pas avoir besoin d'appeler une fonction js chaque fois qu'une touche est enfoncée dans une zone de texte:onkeypress ne fonctionne

<html> 
    <script> 
     function checkValidity() { 
      alert("Checking..."); 
     } 
    </script> 
    <body> 
     <input type="text" name="username" id="username" onkeypress="checkValidity()"> 
    </body> 
</html> 

L'alerte, cependant, ne sera pas affiché. Quel est le problème avec ce code?

MISE À JOUR

Le script est en fait dans un fichier séparé js mais je suis certain qu'il est déclaré correctement parce que si je l'appelle checkValidity() du corps de onload je reçois l'alerte.

+0

@MircoWidmer cette question concerne les expressions régulières. C'est complètement différent. –

+0

Je changerais 'onkeypress' en' onkeyup' pour éviter de manquer de retour arrière, etc. –

Répondre

2

En fait, votre balisage est droit, mais le nom de la fonction checkValidity est maintenant un mot-clé interne pour les éléments

Vérifiez ici https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/checkValidity

Vous pouvez modifier le nom de la fonction c'est tout

<html> 
 
    <script> 
 
     function checkMyValidity() { 
 
      alert("Checking..."); 
 
     } 
 
    </script> 
 
    <body> 
 
     <input type="text" name="username" id="username" onkeypress="checkMyValidity()"> 
 
    </body> 
 
</html>

2

checkValidity est Javascript pour m méthode de validation. Changez le nom de la méthode. Alors ça va marcher.

1
<html> 
    <head> 
    <script> 

     function checkValid() { 
    alert("You pressed a key inside the input field"); 
} 

    </script> 
    </head> 

    <body> 

     <input type="text" name="username" id="username" onkeypress="checkValid()"> 
    </body> 


</html> 

Je pense qu'il travaille

+1

checkValidity est la méthode de validation de forme de Javascript –