[RESOLU] Empecher l'utilisateur de saisir autre chose que des chiffre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Empecher l'utilisateur de saisir autre chose que des chiffre

par stevelace » 02 août 2006, 22:08

Cette fonction vérifie que les caractères entrés sont des chiffres si autre chose est entré il est automatiquement effacé.

Code : Tout sélectionner

function verif_integer(champb){ var chiffresb = new RegExp("[0-9]"); var verifb; for(x = 0; x < champb.value.length; x++){ verifb = chiffresb.test(champb.value.charAt(x)); if(verifb == false){ champb.value = champb.value.substr(0,x) + champb.value.substr(x+1,champb.value.length-x+1); x--; } } }
pour appeler la fonction dans un champ il suffit d'y ajouter

Code : Tout sélectionner

onKeyUp="verif_integer(this)"
vala...

par didgar » 02 août 2006, 19:15

Salut !

Je te fais un copier-coller d'une fonction qui me sert à vérifier le code postal.

Code : Tout sélectionner

function check() { var codepostal = document.getElementById('codepostal').value; var filter = /^[0-9]{5}$/; if(filter.test(codepostal)) { // traitement si ok } else { // traitement si pas ok } }
La regexp "oblige" 5 chiffres minimum.

C'est "funky" mais ça ne vaut pas une vérif côté serveur.

A+

Didier

par zigz4g » 02 août 2006, 17:54

par Invité » 02 août 2006, 15:49

Salut.
La première chose a savoir c'est que ce n'est pas avec Javascript que tu forcera quelqu'un a bien remplir ton formulaire.
Il suffit tout simplement de désactiver ton javascript dans ton navigateur pour remplir le formulaire comme tu le désires.

Je te conseil de faire en premier la vérification du côté PHP en regardant si ton champ de formulaire correspond bien à la bonne valeur attendu.
Tu peux utiliser is_int pour savoir si c'est bien un entier, par exemple.

Pour le javascript, tu peux faire de différentes façon. Tu as commencé comment ???
Oui je sais que l'on peut le désactiver, mais là je ne cherche pas à blinder la saisie avant insertion dans ma bdd, je souhaite juste empecher un utilisateur non aguerri de se tromper !
De plus, je ne pense pas que l'utilisateur en question saura désactiver javascript, je ne crois même pas qu'il sache ce que c'est !
Mais s'il se trompe dans la saisie, c'est surtout pour lui que ca va créer des problèmes puisqu'il ne touchera pas sa commission ... Donc il n'a aucun interet à désactiver JS.

Je ne me rappelait plus de la fonction is_int, merci !

En fait j'attendais de voir ce que l'on me dirait de la différence entre l'utilisation de keydown et keyup, parce que je n'ai jamais utilisé ses fonctions et que je ne sais pas trop par où commencer lors d'une erreur.
Parce que le problème c'est que j'ai pleins de masques de saisie et je dois en faire plusieurs totaux ...
Donc je dois faire quelque chose de bien clair et optimisé pour pas trop m'embrouiller ...
De plus tous ces champs sont créés dynamiquement et je ne sais pas combien il y en aura à l'avance, donc je dois bien réfléchir aux paramètres à passer à la fonction JS en plus du nommage de tous ces champs ...

Enfin bon c'est un bon bordel :P

Moi je le vois comme ca :

création des masques avec une syntaxe de nomination commune, et une fonction JS qui possède en paramètres les valeurs permettant d'identifier le champs dans lequel on fait une saisie ainsi que tous ceux impliquant la mise à jour du total correspondant ...
La fonction JS devra vérifier si la saisie est bien un entier (is_int()), si ce n'est pas le cas, il supprime le contenu du champs, sinon il recalcule le total.

Vous voyez une meilleure facon de faire ?

merci en tout cas !

par zigz4g » 02 août 2006, 15:32

Salut.
La première chose a savoir c'est que ce n'est pas avec Javascript que tu forcera quelqu'un a bien remplir ton formulaire.
Il suffit tout simplement de désactiver ton javascript dans ton navigateur pour remplir le formulaire comme tu le désires.

Je te conseil de faire en premier la vérification du côté PHP en regardant si ton champ de formulaire correspond bien à la bonne valeur attendu.
Tu peux utiliser is_int pour savoir si c'est bien un entier, par exemple.

Pour le javascript, tu peux faire de différentes façon. Tu as commencé comment ???

Empecher l'utilisateur de saisir autre chose que des chiffre

par droopy » 02 août 2006, 15:05

Bonjour,

Je voudrais faire un champs texte permettant à l'utilisateur de saisir des quantités.
Seulement je voudrais éviter les erreurs, en testant à chaque fois la saisie de l'utilisateur et ne remplir le champs uniquement s'il s'agit bien d'un chiffre.
Pourriez-vous m'indiquez la voie à suivre.

J'hesite entre l'évènement keydown et keyup pour lancer une fonction js qui testera la saisie. Et aussi savoir si lorsque la saisie est mauvaise, si je dois vider le champs ou s'il y a une autre manière ...

Merci d'avance,