Salut,
ça fait pas mal de temps que je creuse pour trouver le code qui va bien mais sans résultat.
Enfin, le mieux que j'ai trouvé est ce site mais ça ne répond pas complètement à mon besoin : http://www.howtocreate.co.uk/tutorials/index.php?tut=0&part=17
Explication :
j'ai un formulaire avec des zones de saisies TEXT et je veux interdire certains caractères :
<input size="15" maxlength="15" id="Nom" name="Nom" onKeyDown="submitOnEnter(); return checkChar();">
Action :
submitOnEnter : si on clique sur "entrée", le script de validation est lancé.
checkChar : si on clique ailleurs que sur des caractères alphanumériques, la fct renvoie false et le caractère ne s'écrit pas dans l'INPUT.
1 2 3 4 5 6 7 8 9 10 11
| function submitOnEnter()
{ if (window.event.keyCode==13) validModif(); }
function checkChar()
{
if ( window.event.keyCode==8 || window.event.keyCode==9 ...)
return true;
else
return false;
} |
Comme vous pouvez le constater, ça marche exclusivement pour IE.
Je me suis mis en tête de le rendre compatible Firefox.
Déjà, pour commencer, j'ai modifié checkChar pour qu'elle renvoie false.
function checkChar() { return false ; }
et j'ai supprimé l'appel à submitOnEnter.
1er prob : la fonction a beau me renvoyer false, le caractère frappé s'écrit quand même dans la zone INPUT TEXT !!
Ensuite, j'ai implémenté la gestion des évènements "Onxxxxxx" de telle manière à ce que soit compatible (voir article en lien ci-dessus).
2ème prob :
le OnKeyDown du HTML s'exécute avant le document.onkeydown=ma_fction;
Mon idée était de mettre à jour dans ma_fction une variable globale contenant le n° de la touche frappée. Si la touche est autorisé => OK
si elle est interdite => KO
si c'est ENTREE => on valide.
Bref, je tourne en rond, le problème numéro un étant ce return false qui n'agit pas du tout sur la frappe.
Merci pour votre aide.
Partager