[JS]Champs ne devant contenir que des chiffres.

Champs ne devant contenir que des chiffres. [JS] - HTML/CSS - Programmation

Marsh Posté le 28-05-2011 à 00:06:45    

Je cherche à n’autoriser que la saisie de chiffres dans un input
 
Si je fais ca, ca marche, mais "shift+&" n'affiche pas 1, ca affiche rien. Je suis donc sur d'avoir que des chiffres, mais ya des gens qui n'arrivent pas à saisir de chiffres, c'est donc trop restrictif.
 

// Prevent shift key since its not needed
    if (event.shiftKey == true) {
        event.preventDefault();
    }
    // Allow Only: keyboard 0-9, numpad 0-9, backspace, tab, left arrow, right arrow, delete
    if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46) {
  // Allow normal operation
    } else {
        // Prevent the rest
        event.preventDefault();
    }


 
Si par contre, je fais ca, je peux saisir shift+&, ca fait 1, mais malheureusement aussi &, et la ca affiche "&", donc là c'est pas assez restrictif

// Prevent shift key since its not needed
     
    // Allow Only: keyboard 0-9, numpad 0-9, backspace, tab, left arrow, right arrow, delete
    if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46) {
  // Allow normal operation
    } else {
        // Prevent the rest
        event.preventDefault();
    }


Une idée ?


Message édité par tuxbleu le 28-05-2011 à 00:14:23

---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 28-05-2011 à 00:06:45   

Reply

Marsh Posté le 28-05-2011 à 01:40:38    

Regarde comment j'ai fait la : http://www.worldcraft-online.com/worldcraft3.php?l=fr
 
function changemapname(x)
 
je l'utilise pour le nom de la carte dans "Parametres de la map"

Reply

Marsh Posté le 29-05-2011 à 22:37:44    

GordonF_69 a écrit :

Regarde comment j'ai fait la : http://www.worldcraft-online.com/worldcraft3.php?l=fr
 
function changemapname(x)
 
Je l'utilise pour le nom de la carte dans "Parametres de la map"


 :jap:  
Je vais gratter ça demain.


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 29-05-2011 à 22:46:58    

Tu crois que je peux adapter ça pour un contrôle sur direct à la frappe ?  
Moi faut que je parte de "event" non ?
Faut que je trouve un "event.caractère, ou un truc du genre.
Ya une liste quelque part des méthodes disponibles pour les events ?


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 30-05-2011 à 08:03:10    

Mon event est fait comme cela :
 
<input type="text" onkeyup="changemapname(this)" id="inputmapname" maxlength="30">
 
Des que qqn relache une touche du clavier dans le champ, ca lance la fonction.

Reply

Marsh Posté le 30-05-2011 à 11:25:31    

sur l'idée de changemapname et fonctionnel :
http://jsfiddle.net/pzG7p/

 

lors du "keyup" je remplace la valeur du champ en supprimant tous les caractères qui ne sont pas des chiffres

Message cité 2 fois
Message édité par gatsu35 le 30-05-2011 à 11:26:02

---------------
Blablaté par Harko
Reply

Marsh Posté le 30-05-2011 à 15:05:17    

gatsu35 a écrit :

sur l'idée de changemapname et fonctionnel :  
http://jsfiddle.net/pzG7p/
 
lors du "keyup" je remplace la valeur du champ en supprimant tous les caractères qui ne sont pas des chiffres


 :love:  
J'adore l'interface :)
 
Pour rester homogène avec le reste de mon code, j'ai voulu essayer d'adapter cela :  
 

$("#monchampsamoi" ).keyup(function (event) {
    console.log(event);
    event.value = event.value.replace(/[^0-9]/g,'');
});


 
Mais ca doit pas se faire comme ça  :sweat:


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 30-05-2011 à 15:34:34    

non ca marche pas comme ça.
event est un objet avec tout un tas de parametre, mais ça n'est pas ton champ.
 
Dans ton cas, ton champ c'est par this que tu le tapes

Code :
  1. this.value = this.value....


ou par event.target
 
event.target.value = event.target.value......


---------------
Blablaté par Harko
Reply

Marsh Posté le 30-05-2011 à 17:29:40    

gatsu35 a écrit :

non ca marche pas comme ça.
event est un objet avec tout un tas de parametre, mais ça n'est pas ton champ.
 
Dans ton cas, ton champ c'est par this que tu le tapes

Code :
  1. this.value = this.value....


ou par event.target
 
event.target.value = event.target.value......


merci de l'info  :jap:  
 
Je vais essayer ca :)
 
Avant que je ne crée un thread exprès pour ça, j'essaie de personnaliser une "rules" JQuery.
Vous savez si c'est possible d'écrire soit même sa rule ?
La mienne en l’occurrence, elle doit tester la valeur de 3 autres champs, faire des calcules avec et vérifier que le résultat est en concordance avec ce qui a été saisie.


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 03-06-2011 à 15:57:39    

gatsu35 a écrit :

sur l'idée de changemapname et fonctionnel :  
http://jsfiddle.net/pzG7p/
 
lors du "keyup" je remplace la valeur du champ en supprimant tous les caractères qui ne sont pas des chiffres


 
Erreur sur IE avec ce code :

"Console" est indéfini


:(


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 03-06-2011 à 15:57:39   

Reply

Marsh Posté le 03-06-2011 à 16:37:05    

Tu prendrais soin de lire le code qu'on te donne, et tu verrais que console.log est une ligne de debug


---------------
Blablaté par Harko
Reply

Marsh Posté le 03-06-2011 à 19:09:29    

gatsu35 a écrit :

Tu prendrais soin de lire le code qu'on te donne, et tu verrais que console.log est une ligne de debug


 :sweat:  
désolé :(


---------------
Mon topic de vente - Mon feed-back
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed