j'ai un champs input qui ne doit contenir que des nombres.
Je souhaite donc, au moment de la saisie, sur chaque caractère,
vérifier si c'est un chiffre ou non.
Si c'est un chiffre, la saisie se fait dans le champs, sinon, la frappe
est annulée.
Dans la partie html, sur le champs input, j'ai l'évènement:
onKeyDown="VerifSiChiffre(event);"
Dans ma fonction, je récupère le code de la touche:
function VerifSiChiffre(evenement)
{
if(evenement.keyCode> 95 & evenement.keyCode <106)
{
alert("if " + evenement.keyCode);
}
else
{
alert("else "+ evenement.keyCode);
}
return true;
}
bon, ça marche bien (je traiterai le cas des touches spéciales s'il le
faut, backspace etc).
Le problème, c'est que je n'arrive pas à annuler la saisie, j'ai essayé
de modifier le KeyCode, mais ça marche pas (refus car propriété en get
uniquement)...
Y-a-t-il une technique pour faire tout ça?
Faut-il utiliser une autre approche?
Par avance merci de vos pistes.
--
On est ce qu'on fait, pas ce qu'on pense ni dit. (Réflexion)
tranquille.xav@free.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Tr
Bon, je reconnais que c'est pénible, le fait de poser ma question doit sans doute m'aider à clarifier le problème, car en faisant ceci: onKeyDown="return(VerifSiChiffre(event));" dans le code html, et en modifiant ma fonction comme ceci: function VerifSiChiffre(evenement) { if(evenement.keyCode> 95 & evenement.keyCode <106) { return true; } else { return false; } }
ben ça marche, reste plus qu'à traiter les touches spéciales...
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
-- Le paradis n'est pas le but du voyage mais le chemin que l'on prend pour y arriver. (Réflexion)
Bon, je reconnais que c'est pénible, le fait de poser ma question doit
sans doute m'aider à clarifier le problème, car en faisant ceci:
onKeyDown="return(VerifSiChiffre(event));"
dans le code html, et en modifiant ma fonction comme ceci:
function VerifSiChiffre(evenement)
{
if(evenement.keyCode> 95 & evenement.keyCode <106)
{
return true;
}
else
{
return false;
}
}
ben ça marche, reste plus qu'à traiter les touches spéciales...
S'il y a une solution plus simple, je reste preneur en tout cas, et
merci quand-même :-)
--
Le paradis n'est pas le but du voyage mais le chemin que l'on prend
pour y arriver. (Réflexion)
tranquille.xav@free.fr
Bon, je reconnais que c'est pénible, le fait de poser ma question doit sans doute m'aider à clarifier le problème, car en faisant ceci: onKeyDown="return(VerifSiChiffre(event));" dans le code html, et en modifiant ma fonction comme ceci: function VerifSiChiffre(evenement) { if(evenement.keyCode> 95 & evenement.keyCode <106) { return true; } else { return false; } }
ben ça marche, reste plus qu'à traiter les touches spéciales...
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
-- Le paradis n'est pas le but du voyage mais le chemin que l'on prend pour y arriver. (Réflexion)
ASM
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;" onkeyup="if((this.value/1).toString()=='NaN') { alert('ce n'est pas un nombre'); this.value=this.val; }">
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
S'il y a une solution plus simple, je reste preneur en tout cas, et
merci quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;"
onkeyup="if((this.value/1).toString()=='NaN') {
alert('ce n'est pas un nombre');
this.value=this.val;
}">
--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;" onkeyup="if((this.value/1).toString()=='NaN') { alert('ce n'est pas un nombre'); this.value=this.val; }">
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
Tr
*Ecrit* *par* *ASM*:
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;" onkeyup="if((this.value/1).toString()=='NaN') { alert('ce n'est pas un nombre'); this.value=this.val; }">
j'avais essayé avec this.value, mais sur le keydown, il me renvoie la valeur du contrôle input et non celui de la frappe... Mais ton code est différent, je vais tester, bien que j'aie aussi besoin du keyup pour un autre traitement. Merci, je tiens au courant.
-- Celui qui veut faire ton bonheur pense d'abord au sien. (Réflexion)
*Ecrit* *par* *ASM*:
S'il y a une solution plus simple, je reste preneur en tout cas, et merci
quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;"
onkeyup="if((this.value/1).toString()=='NaN') {
alert('ce n'est pas un nombre');
this.value=this.val;
}">
j'avais essayé avec this.value, mais sur le keydown, il me renvoie la
valeur du contrôle input et non celui de la frappe...
Mais ton code est différent, je vais tester, bien que j'aie aussi
besoin du keyup pour un autre traitement.
Merci, je tiens au courant.
--
Celui qui veut faire ton bonheur pense d'abord au sien. (Réflexion)
tranquille.xav@free.fr
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;" onkeyup="if((this.value/1).toString()=='NaN') { alert('ce n'est pas un nombre'); this.value=this.val; }">
j'avais essayé avec this.value, mais sur le keydown, il me renvoie la valeur du contrôle input et non celui de la frappe... Mais ton code est différent, je vais tester, bien que j'aie aussi besoin du keyup pour un autre traitement. Merci, je tiens au courant.
-- Celui qui veut faire ton bonheur pense d'abord au sien. (Réflexion)
Tr
*Ecrit* *par* *ASM*:
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;" onkeyup="if((this.value/1).toString()=='NaN') { alert('ce n'est pas un nombre'); this.value=this.val; }">
marche bien, sauf si on s'énerve sur le clavier et qu'on tape rapidement plusieurs touches à la suite, quelques unes passent au travers sous FF... et beaucoup sur IE6... je pense garder le mien (avec gestion des touches spéciales) merci quand-même :-)
-- Respecter la liberté d'expression n'est pas respecter celui qui s'exprime mais celui qui écoute. (Réflexion)
*Ecrit* *par* *ASM*:
S'il y a une solution plus simple, je reste preneur en tout cas, et merci
quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;"
onkeyup="if((this.value/1).toString()=='NaN') {
alert('ce n'est pas un nombre');
this.value=this.val;
}">
marche bien, sauf si on s'énerve sur le clavier et qu'on tape
rapidement plusieurs touches à la suite, quelques unes passent au
travers sous FF... et beaucoup sur IE6...
je pense garder le mien (avec gestion des touches spéciales)
merci quand-même :-)
--
Respecter la liberté d'expression n'est pas respecter celui qui
s'exprime mais celui qui écoute. (Réflexion)
tranquille.xav@free.fr
S'il y a une solution plus simple, je reste preneur en tout cas, et merci quand-même :-)
plus simple ? pas sûr, mais :
<input onkeydown="this.val=this.value;" onkeyup="if((this.value/1).toString()=='NaN') { alert('ce n'est pas un nombre'); this.value=this.val; }">
marche bien, sauf si on s'énerve sur le clavier et qu'on tape rapidement plusieurs touches à la suite, quelques unes passent au travers sous FF... et beaucoup sur IE6... je pense garder le mien (avec gestion des touches spéciales) merci quand-même :-)
-- Respecter la liberté d'expression n'est pas respecter celui qui s'exprime mais celui qui écoute. (Réflexion)
ASM
marche bien, sauf si on s'énerve sur le clavier et qu'on tape rapidement
Ha ! pas essayé : je tape que d'un doigt (ou presque)
je pense garder le mien (avec gestion des touches spéciales)
alors :
function VerifSiChiffre(evenement) { return (evenement.keyCode> 95 && evenement.keyCode <106); }
et à ce compte, de mon côté pour accélérer :
function isNbre(quoi) { return (quoi.value/1).toString()=='NaN'; }